MATLAB3-2数据存储-台大郭彦甫
目录
File access文件访问
save() load()
Excel file reading:xlsread()
exercise
既要string也要numeric
如何把这俩同时导出到sheet2
low-level file input/output
function
其中%5.3代表什么?
读取文件
File access文件访问
save() load()
如果想单独存储一个:save mydatal.mat a(这个是只存储a
Excel file reading:xlsread()
读入excel
写入excel:计算mean平均值,并导入到excel中,并加入标题Mean
clc,clear all;
%% 读excel
Score = xlsread('04Score.xlsx');
Score = xlsread('04Score.xlsx','B2:D4');
%写入excel
M = mean(Score')';
xlswrite('04Score.xlsx',M,1,'E2:E4');%1是sheet1
%标题
xlswrite('04Score.xlsx',{'Mean'},1,'E1');
最终excel增加了一列:
exercise
计算标准差,并导入excel中,代码如下:
%% 标准差
Std = std(Score')';
xlswrite('04Score.xlsx',Std,1,'F2:F4');
xlswrite('04Score.xlsx',{'Std'},1,'F1')
结果:
既要string也要numeric
[score header] = xlsread('04Score.xlsx')
如何把这俩同时导出到sheet2
clc,clear all;
%% 读excel
Score = xlsread('04Score.xlsx');
%写入excel
M = mean(Score')';
xlswrite('04Score.xlsx',M,1,'E2:E4');%1是sheet1
% %标题
xlswrite('04Score.xlsx',{'Mean'},1,'E1');
% %% 标准差
Std = std(Score')';
xlswrite('04Score.xlsx',Std,1,'F2:F4');
xlswrite('04Score.xlsx',{'Std'},1,'F1')
[score header] = xlsread('04Score.xlsx')
% 导出到sheet2
a = header
b = num2cell(score)
xlswrite("04Score.xlsx",a,2,'A1')
xlswrite("04Score.xlsx",b,2,'B2:F4')
结果:
low-level file input/output
需要一个fid找到文件,并有一个能够移动的pointer
function
fopen
例如:将sine函数写入A文件中:
1.生成 x,y
2.打开文档
3.将x,y写入文档
4.关闭文档
%1.generate xy
%2.open a file
%3. write xy into the file
%4.close the file
%如果不关闭file,其他file没办法打开
x = 0:pi/10:pi;y = sin(x);
fid = fopen('sinx.txt','w');
for i=1:11fprintf(fid,'%5.3f %8.4f\n',x(i),y(i));
end
fclose(fid);
type sinx.txt
结果:
其中%5.3代表什么?
总共数值是5个,其中3个是小数
读取文件
现在有一个文档asciiData:
代码读取:
%% 读取文件
clc,clear all;
fid = fopen('asciiData.txt','r');
i = 1;
while ~feof(fid)name(i,:) = fscanf(fid,'%5c',1);year(i) = fscanf(fid,'%d',1);no1(i) = fscanf(fid,'%d',1);no2(i) = fscanf(fid,'%d',1);no3(i) = fscanf(fid,'%g',1);no4(i) = fscanf(fid,'%g\n',1);i = i+1;
end
fclose(fid)
结果:工作区得到各个值