matlab如何批量读取mat文件中的矩阵?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab如何批量读取mat文件中的矩阵?相关的知识,希望对你有一定的参考价值。
如题,我遇到的问题大致是:因为我要调用的函数需要用到一个文件夹内的所有mat文件中的矩阵,mat文件是从1到11494,名字为1.mat,2.mat......11494.mat。初学者,不太会用matlab,望指教!谢谢!
函数是idx=kmeans(X,K),其中X就是mat文件中的矩阵
chr=[num2str(i),\'.mat\'];
load(chr);
idx=kmeans(X,K);%不知道这个K怎么个取值
clear X
end 参考技术A for i=1:2
filename = strcat(num2str(i),'.mat');
eval(['load ' filename])
end
我的文件名是1.mat和2.mat 参考技术B 循环
for 什么的 参考技术C 可这样:
for i=1:11494
s=[num2str(i),'.mat'];
X=load(s);
K=3;
idx=kmeans(X,K)
.....
end
matlab批量读取数据
例如我的当前文件夹下有许多excel(后缀名为.xls),我需要读取的数据位置是A2:A37,而且这些EXCEL文件名称是有规律的,例如
060101.xls,060102.xls,060103.xls,...060112,070101.xls,070102.xls,070103.xls,...,070112.xls.我的想法是把这些文件的所有的A2:A37都提取出来,赋到一个矩阵里,可是该怎么做呢?哪个大神能帮我一下,感激不尽。
% 先取得文件名列表,用循环逐个读取文件,再对矩阵进行拼接,应该可以解决你的问题,
% 如有疑问请进一步提出
files = dir('*.xls'); % 获取所有的 excel 文件名,
% 需将准备读取数据的 excel 文件存放在同一目录中,
% 并将该目录设为当前目录。
l = length(files); % 获取文件的个数
B=[]; % B 用于存放结果
for i=1:l % 遍历所有的文件
filename = files(i).name; % 逐个取得文件名
A = xlsread(filename,'A2:A37'); % 读对应位置的数据
B = [B A]; % 拼接矩阵
end
msgbox(['complete! ' num2str(l) ' xls files.']); % 提示完成,并显示读取的文件个数
% 用简单的四个 xls 文件测试了一下,程序可以正常运行,workspace截图如下:
mat格式matlab能更好的识别与处理,也是matlab处理数据的基础。
以上是关于matlab如何批量读取mat文件中的矩阵?的主要内容,如果未能解决你的问题,请参考以下文章