separate empty cells (NaN) from others

3 visualizzazioni (ultimi 30 giorni)
I have a table of cells ( ex: 100*75 cell)
and i want to focus on column 12 , if any cell in it is NaN (empty) , i want to separate its row from the table.
i use this code:
[ndata text alldata] = xlsread('mdr1.xls','sheet1');
[R1,C1]=size(alldata);
j=1;
K=1;
for i=1:size(alldata,1)
if isnan(alldata{i,12})
Ndate(j)=i;
j=j+1;
else
Ydate(K)=i;
K=K+1;
end
end
NAdate=alldata(Ndate,:);
DDate=alldata(Ydate,:);
xlswrite('separate.xls',DDate,1);
xlswrite('separate.xls',NADate,2);
it works...
but
I wonder if anyone has an idea to modify this code.

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 25 Lug 2015
Modificato: Azzi Abdelmalek il 25 Lug 2015
If A is your cell array
c12=A(:,12)
id12=~cellfun(@isnan,c12)
out=A(id12,:)
If you want the part containing nan
out1=A(~id12,:)
  5 Commenti
Azzi Abdelmalek
Azzi Abdelmalek il 25 Lug 2015
Modificato: Azzi Abdelmalek il 25 Lug 2015
Ok, try this
id12=~cellfun(@(x) all(isnan(x)),c12)
Amr Hashem
Amr Hashem il 25 Lug 2015
thanks. جزاكم الله خيرا
it works ...

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by