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文件中的矩阵

for i=1:11494
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截图如下:

参考技术A 建议先将excel表格拖到matlab工作区,使其成为mat格式的数据,然后通过简单的编程就可以将任意值赋值到矩阵的任意位置了。
mat格式matlab能更好的识别与处理,也是matlab处理数据的基础。

以上是关于matlab如何批量读取mat文件中的矩阵?的主要内容,如果未能解决你的问题,请参考以下文章

matlab读取.mat文件中的指定数据

matlab批量读取数据

matlab中如何读取mat文件的矩阵

如何使用matlab将文本文件中的读取值正确读取到矩阵中

matlab 存储mat文件

如何读写Matlab的mat文件?