3

私はこのようなセル配列を持っています:
ここに画像の説明を入力してください

このセル配列でインデックス2を抽出したいので、次のコード行を使用しました。

for i = 1:size(idx,1)  
    if idx{i,1} ~= []  
       index = i;  
    end  
end  

しかし、コードは機能しません。2が[]と異なることを理解していないため、デバッガーが入力されないことを意味します。なぜですか?そして、どのように私にコードを書くことを提案しますか?
文字は常に2であるとは限らず、他のインデックスでも発生する可能性があることに注意してください。

4

2 に答える 2

3

変数が空かどうかをテストするには、ISEMPTY関数を使用します。

セル配列内のすべての要素に対してこれを行うには、CELLFUNを使用できます。

index = find(~cellfun(@isempty, idx));
于 2013-03-26T15:15:07.520 に答える
2

Matlabでは、[]は空を意味します。つまり、次のようになります。

for i = 1:size(idx,1)  
   if ~isempty(idx{i,1})
      index = i;  
   end  
end  
于 2013-03-26T15:19:55.140 に答える