如何在MATLAB中通过索引从大矩阵中提取矢量?

时间:2013-11-18 19:20:10

标签: matlab vector matrix extract

我在MATLAB中长期坚持这个问题,我希望能在这里找到帮助!

我有一个非常大的矩阵,其中有4个向量(每个向量是一列)和72300行..第一列/向量是数据的索引..所以它是这样的:(示例简化)

Index, Info1  Info2  Info3
1      2      1      1
1      4      5      3
1      2.5    1.3    8
2      1      4      7
2      4      6      9
2      12     3      7
3      2      6      6
3      2      1      4
3      1      4      7

Q1>如何从此矩阵中提取索引== 3的所有Info2?

Q2>有没有什么方法可以将矩阵重新排列成这样的?

Index,   Info1,   Info2 Info3   Index   Info1   Info 2  Info 3
 1                              2

依旧......

我希望能够从你们那里找到一些帮助,并提前多多感谢...

亲切的问候,

2 个答案:

答案 0 :(得分:3)

Q1 >> x = A(A(:1)==3,3); % Info2 for Index==3

Q2 >> B = reshape(A.',1,[]); %Flatten A along the rows

答案 1 :(得分:2)

Q1:

对于问题1,我使用一个简单的例子,因为我没有你的变量名。

idx = find( VectorName(:,1) == 3 ) % Find in all row at column 1 where = 3 (Index)

获得索引== 3的所有行的索引后。提取info2值

AllInfo2 = VectorName(idx,3); % Get all value where row == idx and column = 3 (Info2)