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