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)

结果:工作区得到各个值

相关推荐
catchadmin几秒前
PHP 在领域驱动(DDD)设计中的核心实践
开发语言·php
乐兮创想 小林6 分钟前
B2B 内容营销的工程化运营:从内容矩阵建模到 SEO/GEO 联动的完整体系
前端·线性代数·矩阵·网站建设·北京网站建设公司
SilentSamsara16 分钟前
MLflow 实验追踪与模型注册:从实验到生产的可复现工作流
开发语言·人工智能·pytorch·python·青少年编程
dongf201922 分钟前
R语言朴素贝叶斯算法---iris数据集
开发语言·算法·数据分析·r语言
下班走回家24 分钟前
RAG 技术的进化:从朴素检索到 Agentic RAG
开发语言·人工智能·python
weixin_3077791325 分钟前
从“大海捞针”到“主动推理”:AI如何重塑云原生故障诊断的根因链
开发语言·人工智能·算法·自动化·原型模式
Johnstons25 分钟前
网页加载到一半卡住?视频看到关键处花屏?可能是丢包在作祟
开发语言·php·音视频·弱网测试·网络损伤
hoiii18726 分钟前
C# Txt/Excel/Access 导入导出工具
开发语言·c#·excel
代码中介商28 分钟前
C++ 智能指针完全指南(二):shared_ptr 深度详解
开发语言·c++
@Ma33 分钟前
Python 实现企业微信外部群主动消息发送及成功接入后如何避坑,避免风控封号
开发语言·python·企业微信