How can I remove NaN values from a matrix?
Mostrar comentarios más antiguos
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)),:) = [];
Respuesta aceptada
Más respuestas (3)
Erik S.
el 18 de Feb. de 2015
Editada: per isakson
el 25 de Mayo de 2018
You can you something like this
ind = ~isnan(Columns);
Columns=Columns(ind);
Cong Dong Ngoc Minh
el 16 de Jun. de 2020
0 votos
You can try this way
idx =isnan(Columns)
Columns(idx,:) = []
berfin karabulut
el 14 de Ag. de 2020
0 votos
or you can simply use "omitnan" function?
1 comentario
Walter Roberson
el 15 de Ag. de 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.
Categorías
Más información sobre Characters and Strings en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!