Eliminate of empty matrix on cell structure.

5 vues (au cours des 30 derniers jours)
Volkan Yangin
Volkan Yangin le 29 Nov 2015
Modifié(e) : Volkan Yangin le 29 Nov 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"?

Réponses (2)

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

Connectez-vous pour commenter.


Jan
Jan le 29 Nov 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 commentaire
Volkan Yangin
Volkan Yangin le 29 Nov 2015
Modifié(e) : Volkan Yangin le 29 Nov 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. :-)

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by