Hücre hüceyrələrindəki boş hüceyrələri necə aşkarlaya bilərik?

Hücre hüceyrələrindəki boş hüceyrələri necə aşkarlaya bilərik? Boş bir hüceyrəni silmək üçün əmr a(1) = [] bilirəm, lakin MATLAB-ı hansı kameraların boş olduğunu avtomatik olaraq müəyyən etməyə məcburam.

Arka plan: Daha əvvəl a=cell(1,53) . Sonra if exist(filename(i)) və faylları yoxlamaq və oxumaq üçün texnscan istifadə. Nəticədə filename(i) yoxdur, boş bir hüceyrə alınır və biz növbəti faylya gedirik.

Bütün faylları oxuduqda, boş hüceyrələri a silmək istərdim. if a(i)==[]

34
03 авг. NC Rolly 03 aug tərəfindən təyin . 2010-08-03 23:27 '10 at 23:27 2010-08-03 23:27
@ 2 cavablar

CELLFUN istifadə edin

 %# find empty cells emptyCells = cellfun(@isempty,a); %# remove empty cells a(emptyCells) = []; 

Qeyd: a(i)==[] işləməyəcəkdir. İ-ci hücrenin boş olub olmadığını bilmək istəsəniz, hüceyrənin məzmununa çatmaq üçün əyri braces istifadə etməliyik. Ayrıca, ==[] , boş olaraq deyil, true / false olaraq qiymətləndirilir, isempty əmri istifadə etməlisiniz. Qısacası: a(i)==[] isempty(a{i}) kimi yenidən yazılmalıdır.

53
03 авг. Jonas cavab 03 Aug 2010-08-03 23:34 '10 at 23:34 'da 2010-08-03 23:34

Yuxarıda göstərilən bütün cavablar səhvdir, çünki mənim vəziyyətimdə istifadə etdikləri zaman boş hüceyrələri sildilər, sonra isə hüceyrələrin bir sıra elementləri ardıcıl şəkildə təşkil edilmişdi, əksinə onların formasını saxlayırdılar. Əslində, bu yanaşmanı istifadə etdikdən sonra hüceyrənin hüceyrə elementləri bir qayda olaraq hüceyrə vektorudur.

Mənim vəziyyətimdə düzgün işləyən bu yanaşma tapdım.

Mənbə: https://groups.google.com/forum/#!topic/comp.softsys.matlab/p3NX0fI6u90

border=0

yanaşma:

 myCellARRAY(all(cellfun(@isempty,myCellARRAY),2), : ) = []; 
0
23 июня '15 в 13:28 2015-06-23 13:28 Cavab Mahdi Karami tərəfindən 23 İyun 'da 13:28' də verilir. 2015-06-23 13:28

Etiketler haqqında digər suallar və ya bir sual