matlab: 03(2) cell、存档和读档

学习素材:MATLAB教程_台大郭彦甫(14课)原视频补档

MATLAB教學 - 04变数(变量)与档案存取_哔哩哔哩_bilibili

(部分素材使用视频截图)

目录

一、cell

1.两种构造方法

 2.matrix into a cell variable

(1)num2cell

 (2).mat2cell(D1,D2,D3)​编辑

 3.三维cell(A{row,colum,layer})

(1).cat

 4.reshape排列调整

5.常用函数

二、存档和读档

1.mat文件

(1).save

(2).load

2.excel文件

(1).读取xlsread

(2).写入(xlswrite)

(3).多信息读取

 3.txt文档

 (1).写入(fprintf)

 (2)读取(fscanf)


一、cell

1.两种构造方法

 看一个元素的内容用A(x1,x2)

 

 查看cell中矩阵元素的元素

 2.matrix into a cell variable

(1)num2cell

矩阵每个元素都变成cell的元素

 (2).mat2cell(D1,D2,D3)

 D1:原矩阵

D2:代表cell的行数,并且指定,cell中矩阵元素的行数(rows)

D3:代表cell的列数,并且指定,cell中矩阵元素的列数 (colums)

如c=mat2cell(a,[1,1,1,1],[3,2])

即:cell中含有两个2*3矩阵,两个2*2矩阵

 3.三维cell(A{row,colum,layer})

(1).cat

把两个二维cll叠成一个三维cell

 

 4.reshape排列调整

 由下图可知,reshape任然保持原有的矩阵顺序

5.常用函数

二、存档和读档

1.mat文件

(1).save

a=magic(4)
save mydata1.mat

 这种方式,存储成mat文件后打开会是乱码

save mydata2.mat -ascii %按ascii存储

 

  save,在不加任何选项(Options)时,save会将变数以二进制(Binary)的方式储存至副档名为mat的档案,如下述:  

save:将工作空间的所有变数储存到名为matlab.mat的二进制档案。

save filename:将工作空间的所有变数储存到名为filename.mat的二进制档案。 save filename x y z :将变数x、y、z储存到名为filename.mat的二进制档案。  

(63条消息) matlab save函数用法_weixin_33862041的博客-CSDN博客

(2).load

load('mydata1.mat')
load('mydata2.mat','-ascii') %用于查看以sscii码形式存储的mat文件

 

2.excel文件

(1).读取xlsread

 

只会读取数据部分,不会读取字符部分

Sorce=xlsread('sorce.xls')
Sorce =
    90   100   100
    68    44    55
    88   120   120

Sorce=xlsread('sorce.xls','B2:D4')
Sorce =
    90   100   100
    68    44    55
    88   120   120

(2).写入(xlswrite)

%求每行的平均。并写回原文档
M=mean(Sorce')';
xlswrite('Sorce.xls',M,1,'E2:E4');
xlswrite('sorce.xls',M,1,'E2:E4');
xlswrite('sorce.xls',{"Mean"},1,'E1');

(3).多信息读取

[Sorce Header]=xlsread('sorce.xls')

Sorce存储数据信息

Header存储字符信息

 如果把此时Sorce和Header d的数据都存入xls表格

[Sorce Header raw]=xlsread('sorce.xls');
%此时,row中包含sorce中所有的数据
xlswrite('2.xls',raw);
%写入2.xls

 

 3.txt文档

 (1).写入(fprintf)

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 %显示文件中的所有数据

 (2)读取(fscanf)

fid=fopen('date.txt','r');
i=1;
while ~feof(fid) %feof检测文件末尾
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); %g是 %e or %f的紧凑型,即:没有多余的0
no4(i)=fscanf(fid,'%g\n',1);
i=i+1;
end
fclose(fid)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB中,num2cell函数用于将数值数组转换为元胞数组。它的语法是C = num2cell(A, dim),其中A是要转换的数值数组,dim是可选参数,表示要在哪个维度上进行切割。如果不指定dim,则将每个元素视为一个1x1矩阵,即将整个数值数组转换为一个元胞数组。\[2\] 举个例子,如果有一个数值数组A = \[1 2 3; 4 5 6\],运行C = num2cell(A)后,C的结果将是一个元胞数组,其中每个元胞包含一个数值元素,即C = {\[1\] \[2\] \[3\]; \[4\] \[5\] \[6\]}。\[1\] 另外,num2cell函数也可以用于将一个字符串数组的每个字母放入元胞数组的每个元胞中。例如,如果有一个字符串数组a = \['four'; 'five'; 'nine'\],运行c = num2cell(a)后,c的结果将是一个元胞数组,其中每个元胞包含一个字母,即c = {'f' 'o' 'u' 'r'; 'f' 'i' 'v' 'e'; 'n' 'i' 'n' 'e'}。\[3\] #### 引用[.reference_title] - *1* *2* [MATLAB中num2str num2cell cell2struct mat2cell函数的基本用法](https://blog.csdn.net/zy010829/article/details/126592846)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Matlab中num2cell函数使用](https://blog.csdn.net/jk_101/article/details/110929630)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值