重新组装矩阵

时间:2012-01-05 15:08:11

标签: arrays matlab matrix

我想从perm(:,i)定义的节点上的矩阵B中提取矩阵,empA1= B(perm(:,1),perm(:,1))的第i列矩阵,我想计算A2=B(perm(:,2),perm(:,2)),{{1这就是做一个循环:

for i=1:n
    I got A1, A2 and so on –

2 个答案:

答案 0 :(得分:1)

根据我所能看出的情况,您似乎想根据perms矩阵从矩阵B中动态提取子矩阵。你的问题似乎是你不能在循环中这样做,因为你不知道如何动态创建矩阵。您的解决方案是创建一个单元格并输入单元格中的每个子矩阵。因此,如果A是你的手机,那么,

A=cell(1,N);

for i=1:N
  A{i}=B(perm(:,i),perm(:,i));
end

您可以使用

从单元格中获取矩阵Ai
Ai=A{i};  %notice the curly braces {}

答案 1 :(得分:0)

如果你真的想要名为A1,A2和c的变量,你可以使用eval

for i = 1:N
  eval(['A' num2str(i) ' = B(perm(:,i),perm(:,i))']);
end

然而,这可能不是一个好主意,你最好使用@Jorge所示的单元格。细胞可以包含任何东西,更方便。