removing NaN values from mat file

7 次查看(过去 30 天)
I have mat file with 6778 x1 variables(signals ) but in some variables NaN value in the row must be delete .
How to check the NaN values in the mat file and delete the rows of the NaN values ?
  2 个评论
kH
kH 2019-10-11
Eg :
X.mat file contains 600x1 varibles (signals)
Let
field values dimension
signal 1 [NaN ;NaN;0;0;0] 5x1
signal 2 [NaN ;NaN;3;0;5] 5x1
signal 3 [NaN ;NaN;0;3;0] 5x1
signal 4 [NaN ;NaN;2;0;0;9;8] 7x1
signal 5 [NaN ;NaN;0;1;0] 5x1
signal 6 [NaN ;NaN;0;0;6] 5x1
output :
signal 1 [0;0;0] 3x1
signal 2 [3;0;5] 3x1
signal 3 [0;3;0] 3x1
signal 4 [2;0;0;9;8] 5x1
signal 5 [ 0;1;0] 3x1
signal 6 [0;0;6] 3x1
how to obtain the above output ?
Stephen23
Stephen23 2019-10-11
编辑:Stephen23 2019-10-11
"I have mat file with 6778 x1 variables..."
This is not clear: does the .mat file contain:
  • 6778 separate variables (of unknown size), or
  • 1 variable of size 6778x1 ?

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2019-10-11
编辑:Stephen23 2019-10-11
load into an output variable (which is a scalar structure), then loop over the fields:
For example:
S = load('NameOfYourFile.mat');
C = fieldnames(S);
for k = 1:numel(C)
M = S.(C{k});
M(isnan(M)) = [];
S.(C{k}) = M;
end
If required, save again using the -struct option:
save('NameOfNewFile.mat','-struct','S')

更多回答(1 个)

Rik
Rik 2019-10-10
A(isnan(A))=[];
  1 个评论
kH
kH 2019-10-11
But how to do it for complete Mat file . This method works for indiviual varibles only .

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by