Matlab:删除包含复数的矩阵行

时间:2014-12-06 13:43:57

标签: matlab matrix complex-numbers

我有一个2列N行矩阵。第2列仅包含实数,第1列包含实数和复数(实数+虚数)的混合。即它具有以下形式:

14.3 + 0i     27.1 + 0i
3.1 + 1.3i    12.0 + 0i
1.2 + 0i      -11.9 + 0i
0.1 - 3.3i    12.6+ 0i

我想从矩阵中删除每个ROW,其中该行的第一个元素(即第1列元素)包含一个复数,只留下带有实数的行。

非常感谢任何帮助!

由于

2 个答案:

答案 0 :(得分:2)

一种简单的方法是找到第一列的所有元素,其中虚部为零。您保留相应的行并完成。

B = A(imag(A(:,1)==0),:);

答案 1 :(得分:1)

a=[14.3 + 0i     27.1 + 0i;
   3.1 + 1.3i    12.0 + 0i;
   1.2 + 0i      -11.9 + 0i;
   0.1 - 3.3i    12.6+ 0i];
ind = a == real(a);
newa = a(ind(:,1),:);