covert NaN to zeros

“These will contain the value ‘NaN’ when imported. You should replace these with a value of zero.“ For a given set of data, it contains NaN in some where, how to pick then up and assign a zero to then as stated as the statement?

1 Comment

x(isnan(x))=0;
the most basic of logical indexing.

Sign in to comment.

Answers (3)

Check for incorrect argument data type or missing argument in
call to function 'isnan'.
Error in Q1a (line 16)
x(isnan(X))=0 ;
this error occurs

2 Comments

What type of variable is x? Is it double, like d in the example below? Is it a table array, like t? Is it a cell array like c? Or is it some other type?
d = 1:10;
t = array2table(magic(4));
c = {'apple', 'banana'};
whos
Name Size Bytes Class Attributes c 1x2 230 cell cmdout 1x33 66 char d 1x10 80 double t 4x4 1759 table
If it's either double or table, I'd use fillmissing instead of assignment with isnan. isnan is not defined for table arrays but fillmissing can fill missing data inside a table.
d(5) = NaN
d = 1×10
1 2 3 4 NaN 6 7 8 9 10
d2 = fillmissing(d, 'Constant', 0)
d2 = 1×10
1 2 3 4 0 6 7 8 9 10
t{2, 3} = NaN
t = 4×4 table
Var1 Var2 Var3 Var4 ____ ____ ____ ____ 16 2 3 13 5 11 NaN 8 9 7 6 12 4 14 15 1
t2 = fillmissing(t, 'Constant', 0)
t2 = 4×4 table
Var1 Var2 Var3 Var4 ____ ____ ____ ____ 16 2 3 13 5 11 0 8 9 7 6 12 4 14 15 1
it is textdata

Sign in to comment.

John fredson
John fredson on 12 May 2022

0 votes

I have a set of struct data, may I know how can I plot it in the subplot?

1 Comment

This doesn't seem to be related to the original question of how to replace NaN values with 0, so you should ask this as a new question (with more details about how the data is organized in your struct.) Use the Ask link just below the blue "MATLAB Answers" bar at the top of the page.

Sign in to comment.

You say you have "text data".
Not sure what you really have, but look at this:
textData = 'abcdef';
textData(3) = nan
textData = 'ab def'
textData(isnan(textData)) = 0
textData = 'ab def'
textData(3)
ans = ' '
textData(3) = '0'
textData = 'ab0def'
Does that do anything like what you want and expect? If not, attach your variable in a .mat file with the paperclip icon after reading this:

2 Comments

The question are as follow

Sign in to comment.

Categories

Asked:

on 11 May 2022

Commented:

on 15 May 2022

Community Treasure Hunt

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

Start Hunting!