For each non NaN value in the 2rd column, remove the entire row of Cell
Show older comments
raw= [UPS CALL;WMB NaN;LNG NaN; XLE PUT ;DIS CALL]
('raw' is a cell in my case)
Here is what I have so far but it does not work:
[dummy,dummy,raw] = xlsread(fullfile(source_dir,source_files(i).name));
Equity_only = cellfun(@isfinite,raw(:,2),'un',0)
raw=cell2table(raw)
raw(Equity_only,:) = []
raw = table2cell(raw);
Help please!
Answers (3)
Jos (10584)
on 9 Jul 2014
Despite raw being a cell, are there only numbers in the second column? If so:
tf = isnan(vertcat(raw{:,2})) ;
raw2 = raw(tf,:)
If not
tf = cellfun(@(E) numel(E)==1 && isnumeric(E) && isnan(E), raw(:,2))
raw2 = raw(tf,:)
(I am not sure about the "not" in your title. Perhaps you need ~tf ??)
Florent
on 10 Jul 2014
Edited: Star Strider
on 10 Jul 2014
Andrei Bobrov
on 10 Jul 2014
tf = cellfun(@(E) (numel(E)==1 && isnumeric(E) && isnan(E))...
||(all(isletter(E))&&strcmp('CALL',E)), raw(:,2));
raw2 = raw(tf,:);
Categories
Find more on Numeric Types 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!