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)

结果:工作区得到各个值

相关推荐
第九序言T4 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
龙亘川5 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人5 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Raas1006 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
专注仿真6 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
jimy17 小时前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
呆呆虫127 小时前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php
心疼你的一切8 小时前
Python自动发邮件实战定时发报表
大数据·开发语言·python
Wang's Blog9 小时前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友
中科三方9 小时前
IPv6检测常见问题:AAAA记录检测不通过是什么原因?
开发语言·php