获取复数向量在复数矩阵中的位置

时间:2019-03-01 09:43:28

标签: matlab indexing complex-numbers

我需要获取向量(复数)在复数矩阵中的位置。

例如,我的矩阵X如下:

X = [ -0.7071 + 0.7071, 0.00 + 0.00i, 0.00 + 0.00i, 0.00 + 0.00i;
       0.00 + 0.00i, -0.7071 + -0.7071, 0.00 + 0.00i, 0.00 + 0.00i;
       0.00 + 0.00i, 0.00 + 0.00i, -0.7071 + 0.7071, 0.00 + 0.00i; 
      -0.7071 + 0.7071, -0.7071 + 0.7071, 0.00 + 0.00i, 0.00 + 0.00i; 
      -0.7071 + 0.7071, 0.00 + 0.00i, -0.7071 + 0.7071; 0.00 + 0.00i ];

我有一个复杂的向量

Y = [ 0.00 + 0.00i, 0.00 + 0.00i, -0.7071 + 0.7071, 0.00 + 0.00i ]; 

因此,我需要获取矩阵YX的索引。在我的示例中,为3。

1 个答案:

答案 0 :(得分:2)

ismember函数可用于确定向量在矩阵中是否为行:

[~,indx] = ismember(X', Y', 'row')

indx将是一个向量,它说明Y'是否在X'的那一行中(谈论YX时的列)。要知道您想要的索引,只需要做:

sollution = find(indx == 1)

这将返回Y显示为X的所有列。