您还可以避免使用 Matlab 的向量语法在循环中进行测试:
x = [1, 2, 3+1i, 4+2i, 5+3i, 6, 7, 8+4i, 9+0.000001i]
y = x(imag(x) == 0);
z = real(x(abs(imag(x)) < 0.00001));
Run Code Online (Sandbox Code Playgroud)
y应该[1,2,6,7]而且z应该是[1,2,6,7,9]
imag(x) == 0只要等式条件成立,就会产生一个logical带有true值的向量。x(<logical vector>)产生一个只有xwhere <logical vector>was的元素的新向量true。