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)

结果:工作区得到各个值

相关推荐
前端小菜袅2 分钟前
PC端原样显示移动端页面方案
开发语言·前端·javascript·postcss·px-to-viewport·移动端适配pc端
Highcharts.js3 分钟前
如何使用Highcharts SVG渲染器?
开发语言·javascript·python·svg·highcharts·渲染器
郝学胜-神的一滴8 分钟前
超越Spring的Summer(一): PackageScanner 类实现原理详解
java·服务器·开发语言·后端·spring·软件构建
摇滚侠9 分钟前
Java,举例说明,函数式接口,函数式接口实现类,通过匿名内部类实现函数式接口,通过 Lambda 表达式实现函数式接口,演变的过程
java·开发语言·python
阿里嘎多学长10 分钟前
2026-02-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
Tony Bai11 分钟前
“Go 2,请不要发生!”:如果 Go 变成了“缝合怪”,你还会爱它吗?
开发语言·后端·golang
打工的小王12 分钟前
java并发编程(七)ReentrantReadWriteLock
java·开发语言
lang2015092813 分钟前
Java并发革命:JSR-133深度解析
java·开发语言
禹凕13 分钟前
Python编程——进阶知识(面向对象编程OOP)
开发语言·python
abluckyboy14 分钟前
基于 Java Socket 实现多人聊天室系统(附完整源码)
java·开发语言