is not equal in cellarray
이전 댓글 표시
how to make a not equal if statement in cellarray?
I tried this one:
for i=1:length(levelxxx)
if ~isequal(levelxxx{i},level1_root)
levelxxx(i,:)=[];
end
end
but it is not working!!
채택된 답변
추가 답변 (1개)
Azzi Abdelmalek
2012년 11월 4일
편집: Azzi Abdelmalek
2012년 11월 4일
when the condition is true :
levelxxx(i,:)=[];
then the size of levelxxx will be reduced!
use
v_temp=levelxxx
for i=1:length(v_temp)
if ~isequal(v_temp{i},level1_root)
levelxxx(i,:)=[];
end
end
댓글 수: 3
Reducing the size of an array repeatedly causes the same troubles than a repeated growing: The need to re-allocate the new arrays wastes a lot of time. Better:
index = true(size(levelxxx)); % Pre-allocate
for ii = 1:length(v_temp) % avoid "i" as name of a variable
index(ii) = isequal(levelxxx{ii}, level1_root);
end
levelxxx = levelxxx(index, :);
Jwana
2012년 11월 5일
Azzi Abdelmalek
2012년 11월 5일
편집: Azzi Abdelmalek
2012년 11월 5일
I did a big mistake, try Simon's code. And post a sample of your data
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!