我简化了我的问题,我说我有三个矩阵。
我想提取红盒子矩阵。我定义了
S = [1 4;
2 5]
是上述矩阵的线性指数。因此,A(S), B(S)
和C(S)
可以提取三个矩阵的条目。
我按V = [ A(S)(:); B(S)(:); C(S)(:) ]
将它们打包到矢量中。让我们说一些操作后,我获得了一个新的载体
V_new = [12 9 8 12 21 8 7 5 3 12 11 10]'
这就是我的问题:
对于矩阵A,我想获得
2->12, 5->9, 4->8 and 6->12
这是我V_new
的前四个条目。
由于我有大约200个矩阵,我不知道同时交换200个矩阵和更新的向量V_new
。是否正在编写for-loop
最佳方法来实现此目的?
提前致谢。
答案 0 :(得分:2)
假设您的A
,B
和C
矩阵具有相同的维度,而是使用3D矩阵。
e.g。假设您的示例矩阵
M = cat(3,A,B,C)
不提取那4个左上角的元素:
M_subset = M(1:2,1:2,:)
然后将它们重塑为你拥有的矢量:
V = M_subset(:)
然后操纵它以获得V_new
并最终将其放回原始版本中:
M(1:2,1:2,:) = reshape(V_new,2,2,[])