remove negative and NaN from cell array.
Show older comments
Hey
I have a cell array A
A= {NaN,-1,-1,0.8,-0.6,[],[]; NaN,NaN,0.9,1,NaN,-0.05,0.4; -1,NaN,NaN,0.7,0.2,NaN,0.79}
I want to remove negative and NaN values from all the rows and store result in a cell array like:
A{1,1}={0.8}
A{2,1}={0.9,1,0.4}
A{3,1}={0.7,0.2,0.79}
Thanks in advance.
Accepted Answer
More Answers (1)
KSSV
on 1 Jan 2018
A= {NaN,-1,-1,0.8,-0.6,[],[]; NaN,NaN,0.9,1,NaN,-0.05,0.4; -1,NaN,NaN,0.7,0.2,NaN,0.79} ;
% Replace empty cells with NaN's
idx = cellfun('isempty',A) ;
A(idx) = {NaN} ;
% convert to matrix
B = cell2mat(A) ;
iwant = cell(size(B,1),1) ;
for i = 1:size(B,1)
T = B(i,:) ;
T = T(~isnan(T)) ;
iwant{i} = T(T>0) ;
end
1 Comment
Tha saliem
on 1 Jan 2018
Categories
Find more on Cell Arrays 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!