0
我有79个.mat文件每个包含一个名为“CM”的264 * 264阵列。我想将它们全部组合成一个264 * 264 * 79矩阵,但我不知道如何。在MATLAB中将多个二维.mat文件转换为单个三维.mat
我有79个.mat文件每个包含一个名为“CM”的264 * 264阵列。我想将它们全部组合成一个264 * 264 * 79矩阵,但我不知道如何。在MATLAB中将多个二维.mat文件转换为单个三维.mat
files=dir('*.mat') %// load all filenames from the directory ending on .mat
for ii = numel(files):-1:1 %// let the loop run backwards
load(files(ii).name);
A(:,:,ii) = CM; %// assumed they are actually all equivalently called CM
end
的dir
命令得到所有文件在pwd
(当前工作目录)的列表。 for
循环向后运行,以便将存储变量A
初始化为其最大大小,从而提高效率。在循环中加载文件,然后将其存储在A
中。最后A
将是[264 264 79]
阵列。
谢谢,但它给我一个错误: 警告:元素的数量超过最大火石2^53-1。 结果可能不准确。 警告:FOR循环索引太大。截断为281474976710655. 多个结构元素的字段引用后跟 更多引用块是错误的。 –
显然你的CM不像一个简单的数组那么简单。请加载一个到你的工作区并调用'whos(CM)',这样我们就可以看到里面有什么,因为它不是一个简单的数组。 – Adriaan
可能是,这段代码碰到了一些你不打算加载的mat文件。你能否检查'文件'只包含预期的mat文件? – Daniel