In a matrix how to replace zero by NaN.?

Hi every one, I have a matrix A=1×180. All values of matrix A are either zeros or negative numbers. I need to replace all the zeros by NaN, noted that zeros are also randomly distributed in matrix A. I have tried for loop but do not get the desired result. Any guidance will be appreciated thanks.

1 Kommentar

拓郎 下山
拓郎 下山 am 3 Mai 2021
I have the same problem.
I change 0 value to NaN value in nifti file of int16.
I try "V(V==0) = NaN;"
But, it doesn't work. Could you give me the answer?
Thank you for reading.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

njj1
njj1 am 19 Apr. 2018

11 Stimmen

Try this:

A(A==0) = NaN;

4 Kommentare

Safi ullah
Safi ullah am 19 Apr. 2018
@ njj1, thanks it works well.
Ambati Sathvik
Ambati Sathvik am 22 Mai 2020
Thank you
laith awwad
laith awwad am 21 Apr. 2021
HOW TO NAME THE VARIABLE BECAUSE IF I RIGHT FOR EXAMPLE e = A(A==0) = NaN; GIVES ME AN ERROR
If you want to keep the original array around, make a copy of it then replace the values in that copy.
A = randperm(10)
A = 1×10
9 5 7 3 8 10 2 1 4 6
B = A;
B(B > 7) = NaN
B = 1×10
NaN 5 7 3 NaN NaN 2 1 4 6
[A; B] % Use both the original vector (A) and the modified one (B)
ans = 2×10
9 5 7 3 8 10 2 1 4 6 NaN 5 7 3 NaN NaN 2 1 4 6

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by