精华内容
下载资源
问答
  • matlab读取CSV文件

    2020-08-02 10:48:41
    matlab可以很方便使用csv文件,具体读取如下所示: function csv_data =fread_csv(filename,row1,colum1,row2,colum2,row3,colum3,row4,colum4,len) fid = csvread(filename,row1,colum1,[row1,colum1,(row1+len)...

    在vivado抓取数据后,或者quartus中逻辑分析仪抓取数据后,都可以导出为csv文件。matlab可以很方便使用csv文件,具体读取如下所示:

    function csv_data =fread_csv(filename,row1,colum1,row2,colum2,row3,colum3,row4,colum4,len)
    
    fid = csvread(filename,row1,colum1,[row1,colum1,(row1+len),colum1]);
    fid2 = csvread(filename,row2,colum2,[row2,colum2,(row2+len),colum2]);
    fid3 = csvread(filename,row3,colum3,[row3,colum3,(row3+len),colum3]);
    fid4 = csvread(filename,row4,colum4,[row4,colum4,(row4+len),colum4]);
    csv_data.data1 = fid;
    csv_data.data2 = fid2;
    csv_data.data3 = fid3;
    csv_data.data4 = fid4;
    end

    代码表示函数读取四种数据,从第一种第一个数据位于表格row1行,column1列,最后一个数据位于表格row1行,column1+len列,len为逻辑分析仪抓取数据的深度。注意表格行列均是从0开始。

    具体使用:

    strdir='E:\DPD\1\data\da数据\单音\';
    filename=[strdir, 'data52.csv'];
    csv_data = fread_csv(filename,9,1,9,20,9,39,9,58,2047);

     

    展开全文
  • matlab读取csv文件并显示

    万次阅读 2020-01-19 09:45:32
    传统的方式可以通过读取文件,然后处理字符串的方式对`csv`文件进行解析,在`matlab`中可以通过`csvread`函数读取`csv`文件,然后通过`plot`对数据进行显示,也可以对里面的函数进行分析;

    传统的方式可以通过读取文件,然后处理字符串的方式对csv文件进行解析,在matlab中可以通过csvread函数读取csv文件,然后通过plot对数据进行显示,也可以对里面的函数进行分析;

    csv文件格式需要在两个数据直接用逗号隔开,如下所示;

    2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
    

    下面读取的是嵌入式目标板串口发送的csv格式数据,然后通过matlab进行分析;

    filename = 'sector_log.txt';
    file_t1 = 't1_log.txt';
    file_t2 = 't2_log.txt';
    file_t3 = 't3_log.txt';
    
    M = csvread(filename);
    T1 = csvread(file_t1);
    T2 = csvread(file_t2);
    T3 = csvread(file_t3);
    if length(M) > 0
        fprintf('%d\n',length(M));
    end
    fprintf('T1 length is %d\n',length(T1));
    fprintf('T2 length is %d\n',length(T2));
    fprintf('T3 length is %d\n',length(T3));
    
    x1 = [1:1:length(T1)];
    x2 = [1:1:length(T2)];
    x3 = [1:1:length(T3)];
    len = length(T3)
    M(len) = []
    T1(len) = []
    T2(len) = []
    T3(len) = []
    len=len-1
    x=[1:1:len];
    
    % M = load(filename)
    plot(x,M*500,x,T1,x,T2,x,T3);
    
    % M = importadata(filename)
    
    
    

    具体结果如下:

    在这里插入图片描述

    展开全文
  • Matlab读取CSV文件

    千次阅读 2019-05-06 11:35:19
    Matlab读取CSV文件 1、用csvread函数 注意:csvread函数只试用与用逗号分隔的纯数字文件 第一种:M = CSVREAD(‘FILENAME’) ,直接读取csv文件的数据,并返回给M 第二种:M = CSVREAD(‘FILENAME’,R,C) ,读取csv...

    Matlab读取CSV文件
    1、用csvread函数
    注意:csvread函数只试用与用逗号分隔的纯数字文件

    第一种:M = CSVREAD(‘FILENAME’) ,直接读取csv文件的数据,并返回给M

    第二种:M = CSVREAD(‘FILENAME’,R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。

    第三种:M = CSVREAD(‘FILENAME’,R,C,RNG),其中 RNG = [R1 C1 R2 C2],读取左上角为索引为(R1,C1) ,右下角索引为(R2,C2)的矩阵中的数据。

    注意:matlab认为CSV第1行第1列的单元格坐标为(0,0)

    给定一个csvlist.csv文件,其内容如下

    02, 04, 06, 08, 10, 12

    03, 06, 09, 12, 15, 18

    05, 10, 15, 20, 25, 30

    07, 14, 21, 28, 35, 42

    11, 22, 33, 44, 55, 66

    例1.1 读取整个文件

    csvread(‘csvlist.csv’)

    ans =

     2     4     6     8    10    12
    
     3     6     9    12    15    18
    
     5    10    15    20    25    30
    
     7    14    21    28    35    42
    
    11    22    33    44    55    66
    

    例1.2 读取第2行以下,第0列以右区域的数据

    m = csvread(‘csvlist.dat’, 2, 0)

    m =

     5    10    15    20    25    30
    
     7    14    21    28    35    42
    
    11    22    33    44    55    66
    

    例1.3 读取第2行以下,第0列以右,第3行以上,第3列以左区域的数据

    m = csvread(‘csvlist.dat’, 2, 0, [2,0,3,3])

    m =

     5    10    15    20
    
     7    14    21    28
    

    2、使用textscan函数
    在使用textscan函数前必须用fopen函数打开CSV文件。textscan函数读取的结果会存在cell数组中。

    调用格式

    C = textscan(fid, ‘format’)
    C = textscan(fid, ‘format’, N)
    C = textscan(fid, ‘format’, param, value, …)
    C = textscan(fid, ‘format’, N, param, value, …)
    C = textscan(str, …)
    [C, position] = textscan(…)

    关于textscan函数的具体用法见help textscan。

    例2.1 读取字符串

    str = ‘0.41 8.24 3.57 6.24 9.27’;

    C = textscan(str, ‘%3.1f %*1d’);

    textscan returns a 1-by-1 cell array C:

    C{1} = [0.4; 8.2; 3.5; 6.2; 9.2]

    例2.2 读取不同类型的数据

    scan1.dat文件内容如下

    Sally Level1 12.34 45 1.23e10 inf NaN Yes

    Joe Level2 23.54 60 9e19 -inf 0.001 No

    Bill Level3 34.90 12 2e5 10 100 No

    程序如下

    fid = fopen(‘scan1.dat’);

    C = textscan(fid, ‘%s %s �2 � %u %f %f %s’);

    fclose(fid);

    返回值C是一个1×8的元胞数组,其值如下

    C{1} = {‘Sally’; ‘Joe’; ‘Bill’} class cell

    C{2} = {‘Level1’; ‘Level2’; ‘Level3’} class cell

    C{3} = [12.34; 23.54; 34.9] class single

    C{4} = [45; 60; 12] class int8

    C{5} = [4294967295; 4294967295; 200000] class uint32

    C{6} = [Inf; -Inf; 10] class double

    C{7} = [NaN; 0.001; 100] class double

    C{8} = {‘Yes’; ‘No’; ‘No’} class cell

    注意:C{5}的前两项超出了uint32数值范围,所以只给uint32的数值上限

    例2.3 去除一列字符串

    %去除scan1.dat中地2列的字符串

    fid = fopen(‘scan1.dat’);

    C = textscan(fid, ‘%s Level%u8 �2 � %u %f %f %s’);

    fclose(fid);

    返回一个1×8的元胞数组,其中

    C{2} = [1; 2; 3] class uint8

    例2.4 只读第一列

    fid = fopen(‘scan1.dat’);

    names = textscan(fid, ‘%s %*[^n]’);

    fclose(fid);

    返回一个1×1的元胞数组

    names{1} = {‘Sally’; ‘Joe’; ‘Bill’}

    例子2.5指定的分隔符和空值的换算

    data.csv文件内容如下

    1, 2, 3, 4, , 6

    7, 8, 9, , 11, 12

    程序如下

    fid = fopen(‘data.csv’);

    C = textscan(fid, ‘%f %f %f %f %u32 %f’, ‘delimiter’, ‘,’, …

             'EmptyValue', -Inf);
    

    fclose(fid);

    返回一个1×6的元胞数组

    C{1} = [1; 7] class double

    C{2} = [2; 8] class double

    C{3} = [3; 9] class double

    C{4} = [4; -Inf] class double (empty converted to -Inf)

    C{5} = [0; 11] class uint32 (empty converted to 0)

    C{6} = [6; 12] class double

    例2.6 CSV文件中含有空值和注释

    data2.csv内容如下

    abc, 2, NA, 3, 4

    // Comment Here

    def, na, 5, 6, 7

    分离出注释语句

    fid = fopen(‘data2.csv’);

    C = textscan(fid, ‘%s %n %n %n %n’, ‘delimiter’, ‘,’, …

             'treatAsEmpty', {'NA', 'na'}, ...
    
             'commentStyle', '//');
    

    fclose(fid);

    返回1×5的元胞数组

    C{1} = {‘abc’; ‘def’}

    C{2} = [2; NaN]

    C{3} = [NaN; 5]

    C{4} = [3; 6]

    C{5} = [4; 7]

    例2.7 处理重复分隔符

    data3.csv 内容如下

    1,2,3,4

    5,6,7,8

    将multipledelimsasone参数的值赋为1,剔除重复的分隔符

    fid = fopen(‘data3.csv’);

    C = textscan(fid, ‘%f %f %f %f’, ‘delimiter’, ‘,’, …

             'MultipleDelimsAsOne', 1);
    

    fclose(fid);

    返回一个1×4的元胞数组

    C{1} = [1; 5]

    C{2} = [2; 6]

    C{3} = [3; 7]

    C{4} = [4; 8]

    例2.8 使用collectoutput开关

    grades.txt内容如下

    Student_ID | Test1 | Test2 | Test3

    1 91.5 89.2 A

    2 88.0 67.8 B

    3 76.3 78.1 C

    4 96.4 81.2 D

    collectoutput开关的默认值为0(false)将CSV中的每一列返回到Cell的一列中。如果将其值设为1(true),则会把相同数据类型的列返回到Cell的一列中。

    %默认不开启collectoutput

    fid = fopen(‘grades.txt’);

    % read column headers

    C_text = textscan(fid, ‘%s’, 4, ‘delimiter’, ‘|’);

    % read numeric data

    C_data0 = textscan(fid, ‘%d %f %f %s’)

    %开启collectoutput

    frewind(fid);

    C_text = textscan(fid, ‘%s’, 4, ‘delimiter’, ‘|’);

    C_data1 = textscan(fid, ‘%d %f %f %s’, …

                        'CollectOutput', 1)
    

    fclose(fid);

    使用collectoutput后,ID成为cell中的一列,Test1和test2合起来成为cell中的一列,test3成为cell中的一列

    C_data0 =

    [4x1 int32] [4x1 double] [4x1 double] {4x1 cell}

    C_data1 =

    [4x1 int32]    [4x2 double]    {4x1 cell}
    

    frewind的作用是让后面的textscan函数使用前面的fid,一个fid只能让一个textscan读

    例2.9 使用缺省的控制字符

    如果要读的字符串中包含一些控制字符:

    b Backspace

    n Newline

    r Carriage return

    t Tab

    \ Backslash ()

    如果你的数据使用不同的控制字符,在调用textscan时能使用sprintf函数显式转换这些控制字符。

    lyric = sprintf(‘Blackbirdfsingingfinfthefdeadfoffnight’);

    C = textscan(lyric, ‘%s’, ‘delimiter’, sprintf(‘f’));

    textscan returns a 1-by-1 cell array C:

    C{1} =

    {'Blackbird'; 'singing'; 'in'; 'the'; 'dead'; 'of'; 'night'}
    

    例2.10 读取部分字符串

    lyric = ‘Blackbird singing in the dead of night’

    %读取第一个单词:

    [firstword, pos] = textscan(lyric,‘�’, 1);

    %读剩下的部分

    lastpart = textscan(lyric(pos+1:end), ‘%s’);

    3、当成数据库使用
    具体方法可以去百度“matlab 数据库编程”
    段漂亮的代码片

    展开全文
  • 我们在进行科研时会碰到仪器生成的数据为.csv文件,这时候使用matlab进行读取处理,核心思想是对读取到的数据按照矩阵进行处理,处理过程如下: 第一步: filename="D:\...\....csv";%读入csv数据 %截取数值部分 %...

    我们在进行科研时会碰到仪器生成的数据为.csv的文件,这时候使用matlab进行读取处理,核心思想是对读取到的数据按照矩阵进行处理,处理过程如下:
    第一步:

    filename="D:\...\....csv";%读入csv数据
    %截取数值部分
    %诀窍:把矩阵想象成矩形,左上角的坐标即可涵盖左下角内所有数据,添加了右下角坐标即可指定涵盖的区域
    a=csvread(filename,2,0,[2,0,902,89]);
    %建立等大小的矩阵b
    b=a;
    %a中第2i列的数据整体减去第2列的数值,并赋给b的第2i列
    for i=4:2:90
          b(:,i)=a(:,i)-a(:,2);  
    end
    %用btmp1保存第1步结果
    btmp1=b;
    %从第4列开始对每个偶数列1到401行减去tmp1
    %其他列保持不变
    for j=4:2:90
        %tmp1为对应列的401行值减去402行值
        tmp1=b(401,j)-b(402,j);
        for k=1:401
        b(k,j)=b(k,j)-tmp1;
        end
    end
    %用btmp2保存第2步结果
    btmp2=b;
    %从第4列开始对每个偶数列乘以tmp2
    for z=4:2:90
        %tmp2为第4列801行值与其他列对应位置值的比值,此处也可以称为相对于第4列的归一化
        tmp2=b(801,4)/b(801,z);
        b(:,z)=b(:,z)*tmp2; 
    end
    
    

    第二步
    在这里插入图片描述
    双击右侧对应的数据即可看到你所求的结果,查看时可以CTRL+A,然后CTRL+C将结果粘贴到EXCEL中。

    展开全文
  • 语法: M = csvread(filename) 示例:M =csvread('D:\桌面文件\20210330力实验\力数据\10-16.csv');
  • matlab读取csv文件数据并绘图

    万次阅读 2018-05-11 21:18:00
    %读取csv数据文件 %disp(data); %disp函数:显示文本或数组 for i=1:75 if i x=data(i,1); y=data(i,2); plot(x,y,'rs'),axis([0 400 0 800]); hold on; else x=data(i,1); y=data(i,2); plot(x,y,'g.'),...
  • 【小技巧】Matlab读取CSV文件

    千次阅读 2021-03-02 20:56:35
    第二种:M = CSVREAD(‘FILENAME’,R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。 第三种:M = CSVREAD(‘FILENAME’,R,C,RNG),...
  • MATLAB读取csv文件里面既有文本又有数字的文件怎么读取 一.第一种方法用代码读取 用代码读取: (1)如果你要读的文件里面都是数字的话,用csvread函数,它有三种方式读取,但是它的缺点就是只能读取全是数值的文件...
  • %%%%%% csv文件读取方法 方法1~3都有点小问题,方法4可取 %%%%%方法1 fid=fopen(‘file11.csv’); C=textscan(fid, ‘%s%s%s%s%f%f%f%f%f’, ‘Delimiter’, ‘,’, ‘HeaderLines’, 1); fclose(fid); %%%%%方法2 ...
  • 得到的csv文件可以通过MATLAB中的csvread命令读取。 但是,如果数据包含多列,则它们将在 MATLAB 中导出为矩阵。 这里开发的脚本是自动将列分离为它们的自变量。 因此,它们将更容易处理,例如制作绘图。
  • Matlab提取csv文件内容

    2020-11-19 17:49:56
    matlab利用csvread命令导入csv文件方法。
  • Matlab读取CSV文件出现不匹配

    千次阅读 2021-03-20 17:52:30
    在运行如下命令时,出现了如图错误,csvread()函数是读取CSV文件,并转化为matlab数据格式。 filename='m.csv'; m=csvread(filename); 错误原因是: 我在保存csv文件的时候,没仔细看,就选了CSV UTF-8类型,这种...
  • Matlab读取csv文件绘制三维图

    千次阅读 2020-03-28 22:23:04
    a=xlsread('D:\360MoveData\Users\WJM\Desktop\GNSS0.csv'); b=xlsread('D:\360MoveData\Users\WJM\Desktop\GNSS0.csv'); c=xlsread('D:\360MoveData\Users\WJM\Desktop\GNSS0.csv'); z=a(:,1);//规定那一列 x=b(:,3...
  • 前语:在我的上一篇博文中,...但是这种方法比较难,我暂时未弄清楚,因此退而求简单的方法,首先用VS编辑c++代码产生图和路径,然后将图和路径存储在csv文件中,最后利用MATLAb读取文件获得图和路径并绘制。 ...
  • matlab读取csv文件

    2021-01-06 20:49:56
    File = dir(fullfile(Path,’*.csv’)); FileNames = {File.name}’; %%转置 str=string(FileNames); Length_Names = size(FileNames,1); Path1=‘E:\22 学习相关\MATLAB\text2’; for k=1:Length_Names K_Trace = s
  • 方法一:M = csvread(‘FILENAME’),读取逗号分隔值格式的...即csv文件中的第一行为该函数的第0行,csv文件中的第一列为该函数的第0列。 方法三:M = csvread(‘FILENAME’,R,C,RNG),只读取由RNG=[R1 C1 R2 C2]指...
  • matlab读取csv文件数据

    千次阅读 2015-08-08 00:34:11
    用csvread函数 ...第二种:M = CSVREAD('FILENAME',R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。 第三
  • 第一种:M = CSVREAD(‘FILENAME’) ,直接读取csv文件的数据,并返回给M 第二种:M = CSVREAD(‘FILENAME’,R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集...
  • matlabcsv文件

    万次阅读 2019-06-03 15:16:26
    MATLABcsv文件 带有字符串的csv文件 我要读入的数据: 可以看到他是有抬头,并且不是纯数据的csv文件。 如果使用csvread读取 data=csvread('mc1data.csv',1,0);%csvread只能读取纯数据 csvread(fid,...
  • 如何用MATLAB读取csv文件

    万次阅读 多人点赞 2014-05-16 09:48:03
    如何使用Matlab读取csv文件Matlab中,有专门读取csv文件
  • 采用MATLABcsv文件的快速生成分析图 1.采用MATLAB 打开plotcsv.m 2.按F5运行程序 3.plotcsv.m将文件“vnAllFile.csv”绘制成波形图 4.如果需要绘制其他名字的csv文件,将plotcsv.m文件中的vnAllFile.csv文件名改...
  • matlab 批量读取csv

    2017-02-26 19:07:34
    matlab批量读取csv文件,csvread.
  • 这里一共给出了四种读取csv文件的方法,csvread,importdata,textscan和uiopen,个人觉得最好用的是最后一种 1.csvread M = CSVREAD('FILENAME') ,直接读取csv文件的数据,并返回给M,这时要求整个csv文件内容...
  • 最近作实验须要使用matlab导入并处理csv文件数据,在此以前对matlab的使用并不熟悉,因此趁着撰写博客的机会总结巩固一下。一、脚本程序清除命令:clc:清空命令行窗口的内容,对编辑器及工做区的内容无影响。close...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,086
精华内容 1,234
关键字:

matlab提取csv文件

matlab 订阅