matlab文件打开操作总结 - 叶摆动

matlab文件打开操作总结

导入大数据文件,考虑使用textscan读取文件,因为它能有效降低所需的内存(MATLAB中设定的有一个内存值,如果文件太大,超过这个值就要修改这个内存值,很麻烦)。

但是导入的是元胞数组,还要对其进行处理变成矩阵或者数组形式,个人不太喜欢。它还可以导入一个非矩形格式文件,用到的时候再看帮助文档。

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可以读取带格式的文本文件和字符串,使用前要先用fopen获取文件指针,fid.所以先看看fopen的使用方法:

fileID = fopen(filename)

fileID = fopen(filename, permission)

fileID = fopen(filename, permission, machineformat)

fileID = fopen(filename, permission, machineformat, encoding)

[fileID, message] = fopen(filename, ...)

fIDs = fopen(\'all\')

[filename, permission, machineformat, encoding] = fopen(fileID)

注释:fileID即文件的标识符,filename:文件路径,permission:‘r’,\'w\',\'a\',\'r+\',\'w+\',\'a+\',\'A\',\'W\',machineformat:指定读写位的顺序,使用它主要用到不同的操作系统中,用到的时候再查,不详解。encoding:为随后的读写操作指定编码方式,不详解。

message:如果文件打开失败会存储基于系统的错误消息,否则为空。

打开后的文件要记得用fclose关闭,

fid = fopen(\'fgetl.m\');
fclose(fid);
textscan注释:textscan读取出的数据是以元胞数组的形式呈现,一列为一个细胞,列数由format决定,譬如C = textscan(fid, \'%s %s %f32 %d8 %u %f %f %s %f\');会得到一个9列的元胞数组。
如果数据表中有缺失的数据,会以NaN填充。列数最好按照源文件的列数定义,假如我源文件中是9列,我在format中只提供了8个格式,那我的数据表就会将第9列的数字作为一个单独行,(因为后面是换行符)

         N:行数,照着format设定的列数循环N次,即是行数。

          parameter,和value是参数表列,如Delimiter(分隔符之类的),EmptyValue,默认NaN,EndOfLine:默认根据文件决定是\n还是\r,等。具体可以查表。

      textscan会根据MATLAB的规则在遇到溢出,截断时使用NaN,inf,-inf