Replacing numbers in a matrix

I am trying to create a command that replaces all even numbers in a matrix with their square root values. I've already figured out how to determine which numbers are even. Please help.
function repEven = repEven(A)
if rem(A,2) == 0 % determines if numbers are even
end

Answers (1)

Walter Roberson
Walter Roberson on 13 Mar 2021
Edited: Walter Roberson on 13 Mar 2021
Use logical indexing.
if rem(A,2) == 0 % determines if numbers are even
That determines whether all of the numbers in A are even, not if any one of them is even.
Also, do not name your output variable the same thing as your function.

3 Comments

Appreciate the tips, but how would I use logical indexing to determine if numbers are even?
A = [5 8 19]
A = 1×3
5 8 19
rem(A,2) == 0
ans = 1×3 logical array
0 1 0
is a logical vector of true and false values.
A([false, true, false])
ans = 8
Ok I understand, can you give me a hint on how to replace the numbers in my matrix with new ones?

Sign in to comment.

Asked:

on 13 Mar 2021

Commented:

on 13 Mar 2021

Community Treasure Hunt

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

Start Hunting!