2013-10-07 89 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