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!!

2 件のコメント

Jan
Jan 2012 年 11 月 4 日
Whenever you write "is not working" in a forum, it is useful and recommended to explain, what actually happens: do you get an error message (if so, post a complete copy of the message) or do the results differ from your expectations?
Jwana
Jwana 2012 年 11 月 5 日
the error mesage is: Index exceeds matrix dimensions.

サインインしてコメントする。

 採用された回答

Matt J
Matt J 2012 年 11 月 4 日

1 投票

Maybe this?
idx = ismember(levelxxx(:,1),level1_root,'rows');
levelxxx= levelxxx(idx,:);

2 件のコメント

Jwana
Jwana 2012 年 11 月 5 日
error message : Index exceeds matrix dimensions.
Matt J
Matt J 2012 年 11 月 5 日
編集済み: Matt J 2012 年 11 月 5 日
Works fine for me:
>> levelxxx={'111','zz';'222','abgh';'111','hyur'}; level1_root='111';
>> idx = ismember(levelxxx(:,1),level1_root); levelxxx= levelxxx(idx,:)
levelxxx =
'111' 'zz'
'111' 'hyur'

サインインしてコメントする。

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2012 年 11 月 4 日
編集済み: Azzi Abdelmalek 2012 年 11 月 4 日

0 投票

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 件のコメント

Jan
Jan 2012 年 11 月 4 日
編集済み: Jan 2012 年 11 月 4 日
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
Jwana 2012 年 11 月 5 日
Thank you for your responses, how ever ;it gives error message : Matrix index is out of range for deletion.
Azzi Abdelmalek
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

サインインしてコメントする。

カテゴリ

タグ

質問済み:

2012 年 11 月 4 日

Community Treasure Hunt

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

Start Hunting!

Translated by