Remove NaN from cell array

4 次查看(过去 30 天)
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
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 个评论
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

请先登录,再进行评论。

更多回答(0 个)

类别

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