MATLAB Answers

John
0

How to test if each element of a matrix is not a real number?

Asked by John
on 28 Dec 2014
Latest activity Answered by Star Strider
on 28 Dec 2014
I am trying substitute for zero each element that is not a real number, without using loops. Here is a mwe:
clear all;
clc;
A=ones(5,5);
A(3,3)=1i;
A(~isreal(A)) = 0;
A
~isreal doesn't seem to test element-wise. That is, it tests the matrix as a whole: if there is a single element that is complex, then the whole matrix is tested as complex. Moreover, the substitution is performed only to the very first element. How can this be fixed?

  0 Comments

Sign in to comment.

Tags

1 Answer

Answer by Star Strider
on 28 Dec 2014
 Accepted Answer

This works:
A=ones(5,5);
A(3,3)=1i;
A(imag(A) ~=0) = 0;

  0 Comments

Sign in to comment.