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

Antworten (1)

Walter Roberson
Walter Roberson am 13 Mär. 2021
Bearbeitet: Walter Roberson am 13 Mär. 2021

0 Stimmen

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 Kommentare

Ryan Williams
Ryan Williams am 13 Mär. 2021
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
Ryan Williams
Ryan Williams am 13 Mär. 2021
Ok I understand, can you give me a hint on how to replace the numbers in my matrix with new ones?

Melden Sie sich an, um zu kommentieren.

Gefragt:

am 13 Mär. 2021

Kommentiert:

am 13 Mär. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by