2013-10-07 88 views
1

假設我有一個叫做A.保存三維矩陣作爲多個二維.MAT文件

我想A(1,1:n,:), A(2,1:n,:), A(3,1:n,:)等保存爲單獨的二維.MAT文件三維矩陣:squeeze(A(1,1:n,:)

我猜這可能是一種簡單的方法,我不知道。

非常感謝!

+0

.mat文件只能保存變量。所以你需要定義這些變量然後保存它們:'A1 = squeeze(A(1,1:n,:));保存file1 A1',等 –

+0

有沒有什麼辦法可以使用for循環呢?不知何故'A',num2str(i)= squeeze(A(i,1:n,:))'不起作用。 – user2855666

+0

'eval(['A',num2str(i),'= squeeze(A(i,1:n,:));']);'會做。賦值命令在這裏被合成爲一個字符串,然後由'eval'評估。 –

回答

0

查看我的評論,以編程方式定義和分配變量。但是,您可能不需要這裏。正如你建議,你可以循環

for i = 1 : 5 
    B = squeeze(A(i, 1 : n, :); 
    save(['slice', num2str(i), '.mat'], 'B'); 
end 

並將其分配給你寫信給不同的文件中的一個變量。

+0

兩個非常有用的意見,謝謝! – user2855666