首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1)提取子矩阵,2)矢量化,3)返回。

1)提取子矩阵,2)矢量化,3)返回。
EN

Stack Overflow用户
提问于 2015-08-03 11:09:40
回答 1查看 89关注 0票数 1

我简化了我的问题,让我说我有三个矩阵。

我要提取红盒子矩阵。我定义

代码语言:javascript
复制
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是实现这一目的的最佳方式吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-03 11:56:09

假设您的ABC矩阵具有相同的维度,则应该使用3D矩阵。

假设你的例子矩阵

代码语言:javascript
复制
M = cat(3,A,B,C)

不可以提取这4个左上角元素:

代码语言:javascript
复制
M_subset = M(1:2,1:2,:)

然后把它们重塑成你拥有的向量:

代码语言:javascript
复制
V = M_subset(:)

然后操作它以获得V_new,最后将它放回原版:

代码语言:javascript
复制
M(1:2,1:2,:) = reshape(V_new,2,2,[])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31785708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档