Eliminate of empty matrix on cell structure.

1 visualización (últimos 30 días)
Volkan Yangin
Volkan Yangin el 29 de Nov. de 2015
Editada: Volkan Yangin el 29 de Nov. de 2015
Hi everbody.
I have 1*1724 cell structure and i want to find which cells are not empty matrix.
for l=1:1:1724
if buyuk_elemanlar{1,l}==[];
clear buyuk_elemanlar{1,l}
elseif
???
end
end
I don'nt know how type matlab code after the "elseif"?

Respuestas (2)

Image Analyst
Image Analyst el 29 de Nov. de 2015
Try it like this:
if isempty(buyuk_elemanlar{1,l})
% Cell is empty....
  1 comentario
Volkan Yangin
Volkan Yangin el 29 de Nov. de 2015
Thanks a lot Image Analyst, your solution is very helpful for me now. :-)

Iniciar sesión para comentar.


Jan
Jan el 29 de Nov. de 2015
Use isempty instead of | == []|. clear is not useful to remove a single element. Do not remove elements of the cell inside the loop. Because then the loop index does not match the cell index anymore.
Different solutions:
m = false(1, 1724);
for k = 1:1724
if isempty(buyuk_elemanlar{1, k})
m(k) = true;
end
end
buyuk_elemanlar(m) = [];
Or:
m = false(1, 1724);
for k = 1:1724
m(k) = isempty(buyuk_elemanlar{1, k})
end
buyuk_elemanlar(m) = [];
Or:
m = cellfun('isempty', buyuk_elemanlar);
buyuk_elemanlar(m) = [];
The meaning of the "elseif ???" cannot be guessed. What should happen when the cell is not empty?
  1 comentario
Volkan Yangin
Volkan Yangin el 29 de Nov. de 2015
Editada: Volkan Yangin el 29 de Nov. de 2015
Thank you. Jan Simon. When i used elseif function, it is not useful for solve this problem, too. This only changes the for ex. 1x24cell to "l" Now i will use your solution with not using elseif and clear functions and i think, problem will be resolved by your codes. Thanks a lot again. :-)

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by