Find a column number from a cell array

1 visualización (últimos 30 días)
Snowfall
Snowfall el 9 de Feb. de 2016
Editada: Snowfall el 17 de Feb. de 2016
I have a cell array from which I just know that some of its columns are "empty" and I would like to find those. For example I have an array:
C={1,'',6,11,''; 2,'',7,12,'';3,'',8,13,'';4,'',9,14,'';5,'',10,15,''}
And I would like my answers to be:
col_num1=2
col_num2=5
(meaning that 2nd and 5th columns are empty, the names for answer are not oblicatory but I would need them later on in my calculation)
  2 comentarios
Guillaume
Guillaume el 9 de Feb. de 2016
You do not want to create one variable per empty column. That is going to make subsequent code much harder to write.
You want it all in one variable so you can easily loop over the values.
As a rule, if you start numbering variables, you're doing it wrong. Whatever is in these numbered variables should be collected together in a matrix or cell aray.
Snowfall
Snowfall el 17 de Feb. de 2016
Editada: Snowfall el 17 de Feb. de 2016
Thank you for your answer. It helped me to think my application again so I did it in a different way.

Iniciar sesión para comentar.

Respuesta aceptada

Guillaume
Guillaume el 9 de Feb. de 2016
You need to apply the isempty function to each element of C to get a logical matrix. You can use an explicit loop or cellfun. It just then a matter of applying all to that logical matrix to find columns with all empty. Thus:
C = {1,'',6,11,''; 2,'',7,12,'';3,'',8,13,'';4,'',9,14,'';5,'',10,15,''};
emptycolumns = all(cellfun(@isempty, C))
%if you want the column number (often unnecessary, you can use the logical array directly)
emptycolumnsidx = find(emptycolumns)

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by