Hi,
I want to remove cell with NaN input from a cell array. The cell array itself is a field of a structure and the structue is nested inside another cell array of (16x1).
The name of explained cell array with NaN input in my code is y_fast{i,1}.OutList. I write this command to remove NaN from it:
for i=1:length(y_fast)
y_fast{i,1}.OutList(cellfun(@(x)any(isnan(x)),y_fast{i,1}.OutList)) = [];
end
it is run without any error but it does not remove the NaN from the cell array.
why?? Could Someone help me??

 採用された回答

madhan ravi
madhan ravi 2019 年 9 月 7 日
編集済み: madhan ravi 2019 年 9 月 7 日

0 投票

S=[y_fast{:}];
ix=cellfun(@(x)any(isnan(x.OutList)),y_fast);
y_fast(ix)=arrayfun(@(x)rmfield(x,'OutList'),S(ix),'un',0)

3 件のコメント

Laila Rezai
Laila Rezai 2019 年 9 月 7 日
good answer but it give me back the following error:
Error using horzcat
Number of fields in structure arrays being concatenated do not match.
Concatenation of structure arrays requires that these arrays have the same set
of fields.
I attach y_fast.mat data here. I had to reduce the size of y_fast from 16x1 cell to 1x1 cell, because of attachment size limitation, but the all removed cells have the same structure.
madhan ravi
madhan ravi 2019 年 9 月 7 日
for k=1:numel(y_fast)
y_fast{k}.OutList=y_fast{k}.OutList(~strcmp(y_fast{k}.OutList,'NaN'))
end
Laila Rezai
Laila Rezai 2019 年 9 月 7 日
Thanks alot!!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by