MATLAB3-2数据存储-台大郭彦甫

目录

[File access文件访问](#File access文件访问)

[save() load()](#save() load())

[Excel file reading:xlsread()](#Excel file reading:xlsread())

exercise

既要string也要numeric

如何把这俩同时导出到sheet2

[low-level file input/output](#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

Matlab 复制代码
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中,代码如下:

Matlab 复制代码
%% 标准差
Std = std(Score')';
xlswrite('04Score.xlsx',Std,1,'F2:F4');
xlswrite('04Score.xlsx',{'Std'},1,'F1')

结果:

既要string也要numeric

Matlab 复制代码
[score header] = xlsread('04Score.xlsx')

如何把这俩同时导出到sheet2

Matlab 复制代码
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.关闭文档

Matlab 复制代码
%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:11
    fprintf(fid,'%5.3f %8.4f\n',x(i),y(i));
end
fclose(fid);
type sinx.txt

结果:

其中%5.3代表什么?

总共数值是5个,其中3个是小数

读取文件

现在有一个文档asciiData:

代码读取:

Matlab 复制代码
%% 读取文件
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)

结果:工作区得到各个值

相关推荐
数模竞赛Paid answer2 小时前
2024年亚太杯APMCM数学建模大赛A题复杂场景下水下图像增强研究解题全过程文档及程序
数学建模·数据分析·亚太杯
九转成圣3 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
SmartRadio3 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
laowangpython4 小时前
Rust 入门:GitHub 热门内存安全编程语言
开发语言·其他·rust·github
我叫汪枫4 小时前
在后台管理系统中,如何递归和选择保留的思路来过滤菜单
开发语言·javascript·node.js·ecmascript
_.Switch4 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
软件技术NINI4 小时前
webkit简介及工作流程
开发语言·前端·javascript·udp·ecmascript·webkit·yarn
Brendan_0014 小时前
JavaScript的Stomp.over
开发语言·javascript·ecmascript
念2344 小时前
f5 shape分析
开发语言·javascript·ecmascript
苍穹之跃4 小时前
某量JS逆向
开发语言·javascript·ecmascript