matlab读取TXT文件数据,二进制文件数据

1. maltab自带工具

matlab读取TXT文件数据,二进制文件数据_第1张图片

选择数据文件后

可以看到如下界面

可以根据实际选择分隔符,一般是空格或者逗号

有些第一行还有变量名,所以一般舍去第一行等

最后点击导入所选内容即可

优缺点

   不能打开太大的文件数据,这个跟电脑性能也有关系,100M以内都还好

   可以很简单的导入数据,但是对于多个文件重复操作比较费时,

2. load方式

代码如下

%%文件路径
Path='data\'
filename=[Path ,'data.txt'];
%%读取文件数据
data=load(filename);

优缺点

该方法可以读取较大的文件数据,目前测试400M的数据文件读取是正常的,只是读取费些时间,

还可以读取多个文件数据

缺点:对于存储数据的格式要求较高,比如每一行的数据个数必须一致,否者无法读取

3. 读取二进制文件数据

mydataRead.m文件

function [data,state]=mydataRead(fileName,M,N)
    fid=fopen(fileName,'rb');
    if(fid>0)
        [data,count]=fread(fid,[M,N],'float');
        if(count==size(data,1)*size(data,2))
            state=1;
        else
            state=-1;
        end
    end
    fclose(fid);
end

rdata_bin.m文件

clear;
clc;
%%data format time s  A m/s2(x,y,z)  G degree/s(x,y,z)
%%read 64x bin data
file_path = 'data\';% path of bin data?
bin_path_list = dir(strcat(file_path,'*.bin'));%get all  ?
bin_num = length(bin_path_list);%get number of bin data
%%
%read bin data to workspace
for i=1:bin_num
    [data,state]=mydataRead([bin_path_list(i).folder bin_path_list(i).name],7,inf); 
    data=data';
    namestr = ['T_AG_data_', num2str(i), '=', 'data', ';'];
    eval(namestr);
end

当然fread也可以读取txt文件数据

你可能感兴趣的:(matlab)