一.matlab读取文件函数总结

1. load读取方式


  • a.基本说明:
    只能读取数值数据,不能读取含文本的数据;日期按数值读取。
  • b.调用方式:
    a=load(filename);
  • c. 有无分隔符限制:
    无需输入分隔符,可自动识别空格、逗号、分号、制表符。
  • d. 能否自定义读取范围:
    不能。
  • e. 适用文件类型:
    txt、csv。

2. importdata读取方式


  • a.基本说明:
    可读取数值数据和含文本的数据,但是要求文本在数据的第一行或第一列。返回值分为数值部分(data)和文本部分(textdata)
  • b.调用方式:
    a=importdata(filename,delm,nheaderlines);
    filename:文件名(如果文件在其他路径下,文件名前需加所在路径。)
    delm:分隔符
    nheaderlines:从第nheaderlines+1行开始读取数值数据。
  • c.有无分隔符限制:
    多列数据时需输入分隔符。若不输入分隔符,整行会被作为字符串放入一列。
  • d.能否自定义读取范围:
    可从某一行开始读取数值数据。若使用importdata按钮,则可自定义读取范围和设置数据类型。
  • f. 适用文件类型
    txt、xls、xlsx、csv。

3. textscan读取方式


  • a.基本说明:
    可对列按照自定义格式读取数据,必须输入每列的读取格式,可跳过某个列或几列。按数值读取时,缺少值以NaN填补;按字符读取时,缺少值以空格填补。返回值按列放入元胞数组。
  • b.调用方式:
    c =textscan(fid,‘format’,n,‘param’,value)
    fid:文件指针。使用textscan函数时需先使用fopen函数打开数据文件,返回给fid文件。若不再使用,则需用 fclose(fid)关闭文件。
    ‘format’:定义每列的读取格式。例如:%s表示按字符串读取、%d表示按整数读取、%D按日期读取、%*表示跳过该列。level%u8表示将level1读取成1,去掉level。
    ‘param’,value:这两个参数成对出现。例如’Delimiter’,’s’表示按分隔符为’,’进行读取。
  • c.有无分隔符限制
    可自定义分隔符,不是必须的。
  • d.能否自定义读取范围:
    可跳过某列或某几列数据,但要保证跳过的列是可读的,否则读取也会出错。
  • e.适用文件类型

txt、csv

4. textread读取方式


  • a.基本说明:
    适用于格式统一的txt文件的一次性大批量读取。textread读取某个文件后,下次再用,textread读取这个文件时,还是会从文件头开始读取。
  • b.调用方式:
    [A,B,C,…] =textread(filename,format)
    [A,B,C,…] =textread(filename,format,N,’headerlines’,M)
    ​ Filename:文件名;
    ​ Format:就是要读取的格式;
    ​ A,B,C…:从文件中读取到的数据。中括号里面变量的个数必须和format中定义的个数相同。
    ​ N:表示读取的次数,每次读取一行。
    ​ Headerlines:表示从第M+1行开始读入。

5. dlmread读取方式


  • a. 基本说明:
    只能读取数值数据。如文件中含有文本,需使用range参数跳过。返回值为矩阵。
  • b. 调用方式:
    result =dlmread(filename,delimiter,range);
    filename:文件名。
    delimiter:分隔符。
    range:文件读取范围,格式为[R1 C1 R2 C2]。
  • c. 有无分隔符限制:
    可自定义分隔符,不是必须的。
  • d. 能否自定义读取范围:
    通过设置range,选择读取范围。
  • e. 适用文件类型
    txt、csv。

6. xlsread读取方式


  • a. 基本说明:
    读取xls文件,可读取含文本的数据,仅能返回数值部分。
  • b. 调用方式:
    [num,txt,raw]=xlsread(file,sheet,range);
    file:需要读取的文件。
    sheet:需要读取的表单。
    range:读取范围,格式为’A1:C4’。
    num:返回的数值数据。
    txt:返回的文本数据。
    raw:返回未处理的数据。
  • c. 有无分隔符限制
    无需输入分隔符。
  • d. 能否自定义读取范围:
    由sheet和range定义读取范围。
  • e. 文件适用范围
    xls、xlsx。

7. csvread读取方式


  • a. 基本说明:
    只能读取逗号分隔的数值数据。如文件中含有文本,需使用range参数跳过。
  • b.调用方式:
    m = csvread(‘filename’,r,c,rng);
    filename:文件名字。
    r,c:开始读取的位置
    rng:读取范围,格式为[R1 C1 R2 C2]
  • c.有无分隔符限制:
    文件必须以逗号分隔。
  • d. 能否自定义读取范围:
    可由r,c ,rng定义读取范围。
  • e. 文件适用范围
    txt、csv。

8. fread读取方式

该函数读取文件返回的是二进制矩阵。

二. matlab写文件函数总结

1. xlswrite读取方式

  • a.基本说明:

用matlab处理数据之后,需要将其保存到EXCEL内,而这必须用到xlswrite函数。

  • b.调用方式
    A=xlswrite(filename, M);​ 将矩阵M的数据写入名为filename的Excel文件中。
    B=xlswrite(filename, M, sheet)​ ;将矩阵M的数据写入文件名为filename中的指定的sheet中。
    C=xlswrite(filename, M, range)​;将矩阵M中的数据写入文件名为filename的Excel文件中,且由range制定存储的区域,例如’C1:C2’.
    D=xlswrite(filename, M, sheet, range)**status = xlswrite(filename, …);**返回完成状态值。
    如果写入成功,则status为1;反之,写入失败,则status为0.

2. dlmwrite读取方式



a.基本说明:

将矩阵写入ASCII分隔的文件。



b.调用方式

1)dlmwrite(filename, M)

使用默认的分隔符(’)将矩阵M写入ASCII格式的文件中。在目标文件filname中,数据是从第一行的第一列开始写的。输入的filename是使用单引号括起来的字符串。

2)dlmwrite(filename, M, ‘D’)

将矩阵M写入一个ASCII格式的文件中,使用分隔符D来分割矩阵的元素。在目标文件filname中,数据是从第一行的第一列开始写的。逗号’是默认的分隔符,使用\t来产生制表符分割的文件。

3)dlmwrite(filename, M, ‘D’, R, C)

将矩阵M写入一个ASCII格式的文件中,使用分隔符D来分割矩阵的元素。在目标文件filname中,数据是从第R行的第C列开始写的,R和C从0开始,因此R=0,C=0指定了文件中的第一个数值,即左上角的位置。

4)dlmwrite(filename, M, ‘-append’)

将矩阵数据追加到文件的末尾。如果你不指定’’-append’,dlmwrite覆盖文件中的任何现有数据。
5)dlmwrite(filename,M, ‘-append’, attribute-value list)
接受一个属性值对列表。用户可以将’-append’标志放在属性-数值对之间,但不能放在属性和它的值的中间。



参考资料:

​dlmwrite的用法​

​如何使用dlmwrite将matlab中的数据保存到.txt文件中​