How can I remove NaN values from a matrix?
Show older comments
My code so far is below. I have the code so that it skips the first 19 lines and starts at line 20. However, I need to remove the NaN values that are in my data like Columns = [10;0.04500;0;NaN;NaN] for example. The line I have to remove the NaN's runs, it's just not removing them. I'm not sure what isn't working. How do I fix my issue?
Thanks
fid = fopen('filename.txt');
Rows = textscan(fid, '%s', 'delimiter', '\n');
fclose(fid);
Columns= cellfun(@(x) textscan(x,'%f','delimiter','\t','CollectOutput',1) ...
, Rows{1,1}(20:end, :));
fid(isnan(fid(:,1)),:) = [];
Accepted Answer
More Answers (3)
Erik S.
on 18 Feb 2015
Edited: per isakson
on 25 May 2018
You can you something like this
ind = ~isnan(Columns);
Columns=Columns(ind);
Cong Dong Ngoc Minh
on 16 Jun 2020
0 votes
You can try this way
idx =isnan(Columns)
Columns(idx,:) = []
berfin karabulut
on 14 Aug 2020
0 votes
or you can simply use "omitnan" function?
1 Comment
Walter Roberson
on 15 Aug 2020
omitnan is not a Mathworks function. It is an option that can be used in some functions that are not relevant to the question asked.
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!