MATLAB 的数据导入与导出

时间:2023-03-08 18:46:59

1 数据导入:

%% 高层次读取数据。 importdata 函数是一个高层次的函数
filename = 'weeklydata.txt';
delimiterIn =' '; %delimiter: n. 定界符。将 delimiterIn 解释为 ASCII 文件、文件名或剪贴板数据中的列分隔符。
headerlinesIn = ; % 从 lineheaderlinesIn+ 开始读取数字数据。
A=importdata(filename,delimiterIn,headerlinesIn);
% 开始预览数据
for k =[:]
disp(A.colheaders{,k}) %展示每一列的题头
disp(A.data(:,k)) %每一列的所有行
disp(' ')
end

结果:

MATLAB 的数据导入与导出

Matlab低级别的文件 I/O:
%% Matlab低级别的文件 I/O
filename = 'myfile.txt';
% myfile.txt保存在工作目录中。此文件存放三个月的降雨资料: 2012年6月,7月和8月降雨量。
% myfile.txt中的数据在五个地方包含重复的时间,月份和降雨量测量。标题数据存储月数M; 所以有M个集合测量值。
rows =
cols = %使用 fopen 函数打开文件并获得文件标识符。
fid = fopen(filename); %读取文件头,找到 M (月份数)
% 使用格式说明符描述文件中的数据,例如字符串的%s,整数%d或浮点数%f。
% 要跳过文件中的文字,需将其包含在格式说明中。要跳过数据字段,在说明符中使用星号(*)
M=fscanf(fid,'%*s %*s\n %*s %*s %*s %*s\n M=%d',); %要读取头文件,并返回单个的M值 %读取 each set of measurements for n= :M
% 默认情况下,fscanf会根据格式描述读取数据,直到找不到数据的匹配,或到达文件的末尾。
% 这里使用for循环读取3组数据,每次读取7行和5列。
% 在工作空间中创建一个名为mydata的结构来存储从文件读取的数据。
% 这个结构有三个字段 - 时间,月份和雨天数组。
mydata(n).time=fscanf(fid, '%s',);
mydata(n).month = fscanf(fid, '%s', );
mydata(n).raindata=fscanf(fid,'%f',[rows,cols]); end
for n=:M
disp(mydata(n).time)
disp(mydata(n).month)
disp(mydata(n).raindata)
end %关闭文件
fclose(fid);

结果:

MATLAB 的数据导入与导出

2 数据导出:

使用 save 将工作区变量保存到文件中。

(1)save(filename) 将当前工作区中的所有变量保存在 MATLAB® 格式的二进制文件(MAT 文件)filename 中。如果 filename 已存在,save 会覆盖该文件。

(2)save(filename,variables) 仅保存 variables 指定的结构体数组的变量或字段。

(3)save(filename,variables,fmt) 以 fmt 指定的文件格式保存。variables 参数为可选参数。如果您不指定 variablessave 函数将保存工作区中的所有变量。

例如,要保存名为 test.mat 的文件,这些语句是等效的:

save test.mat      % command form
save('test.mat') % function form

您可以包括先前语法中介绍的任何输入。例如,要保存名为 X 的变量:

save test.mat X       % command form
save('test.mat','X') % function form