matlab - 从 Matlab 中的索引列表中获取矩阵的值列表
问题描述
我有一个这样的矩阵:
A = [35, 1, 6, 26;
3, 32, 7, 21;
31 9, 2, 22;
8, 28, 3, 17];
和这样的索引列表:
B = [1, 1;
1, 2;
2, 2;
1, 3];
我想从矩阵 A 中获取具有 B 中的索引的值列表
C = [35, 1, 32, 6]
我使用这段代码:
C = A(B==1)
但是 C 是:
[35, 3, 8, 1]
我哪里错了?
解决方案
您可以使用sub2ind
将row,col
索引转换为线性索引。
A = [35, 1, 6, 26;
3, 32, 7, 21;
31 9, 2, 22;
8, 28, 3, 17];
B = [1, 1;
1, 2;
2, 2;
1, 3];
linear_ind = sub2ind(size(A), B(:,1), B(:,2));
C = A(linear_ind)
这将导致
C =
35
1
32
6
推荐阅读
- java - 使用jsoup从godaddy中提取数据
- google-play-services - 随着 gluonhq 魅力下降,如何使用 InAppBillingService 与 Google Play “讨论”
- r - 使用“聚合”功能绘制线图
- c - 这里的输出应该是什么?
- google-analytics - 跟踪整个网站的#tag 使用情况
- ubuntu - 如何在启动时启动 Kamailio
- codenameone - 侧边菜单图标样式问题
- javascript - 从 D3 颜色范围返回单个值以创建图例
- typescript - 具有对象文字和 Typescript 的功能性开关盒
- ios - TextField,TextView键盘在执行segue时不会消失