Removing all-NaN Rows/Columns from Cell Matrix?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
John R.
el 26 de Ag. de 2014
Comentada: John R.
el 26 de Ag. de 2014
Let's say I have the following cell matrix that contains NaN's, numbers, and strings...
A = {...
0 2 'All' NaN NaN 2
NaN NaN NaN NaN NaN NaN
NaN NaN 'Yes' NaN NaN 1};
Is there an easy way to identify the rows and columns that contain all NaN's? In this example, I would like to remove row 2, and then columns 4 and 5. The result would be...
B = {...
0 2 'All' 2
NaN NaN 'Yes' 1};
I have brute-forced it by checking every value, but I'm sure there is a more methodical approach using cellfun perhaps. My method took 30 lines but I'm guessing there it can be done in just a few lines.
Thanks!
0 comentarios
Respuesta aceptada
Azzi Abdelmalek
el 26 de Ag. de 2014
A = { 0 2 'All' NaN NaN 2
NaN NaN NaN NaN NaN NaN
NaN NaN 'Yes' NaN NaN 1}
idx=cellfun(@(x) all(isnan(x)),A)
ii=all(idx,2)
jj=all(idx)
A(ii,:)=[]
A(:,jj)=[]
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!