Replacing all even numbers in my matrix with their square root value

So I put in the code :
A=[1 4 9; 8 16 7; 3 36 4]
X=sqrt(A(rem(A,2)==0))
It did square root each even number but it put it in it's own matrix but I was trying to replace the even number with new values while still having all the other values in the matric still. How do I fix this?

 Réponse acceptée

You need to assign it back to A to replace the even values.
A=[1 4 9; 8 16 7; 3 36 4];
i = rem(A,2)==0;
A(i) =sqrt(A(i))

Plus de réponses (1)

A=[1 4 9; 8 16 7; 3 36 4]
idx = mod(A,2) ;
A(idx==0) = sqrt(A(idx==0))

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by