首页 > 解决方案 > 获取复数向量在复数矩阵中的位置

问题描述

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

例如我有如下矩阵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 ]; 

所以,我需要的是获取Y矩阵中的索引X。在我的示例中,它是 3。

标签: matlabindexingcomplex-numbers

解决方案


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

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

indx将是一个向量,它表示是否在(谈论和时Y'的列)的那一行。要知道您想要的索引,您只需执行以下操作:X'YX

sollution = find(indx == 1)

这将返回所有Y出现的列X


推荐阅读