0

isemptyたとえば、関数の使用方法がわかりませんでした:

シミュレーションの最初の行列は

[18 1 0 0 0;12 0 0 0 1;15 1 1 0 0]

シミュレーションの 2 番目の行列は次のとおりです。

[25 0 0 0 0;30 1 1 0 0;14 0 0 1 0]

シミュレーションからの 3 番目の行列は次のとおりです。

[50 1 0 0 0;12 0 0 1 0;24 1 1 1 0] 

私は次の機能を使用しました:

idxfun=@(x)find(ismember(x(:,2:end),[1 0 0 0],'rows'))

a=the first matrix(idxfun(the first matrix),:) 

答えは次のとおりです18 1 0 0 0。2 番目のマトリックスの答えは 、次のとおりですempty matrix:0-by-5。シミュレーションは停止します。私が望むのは、シミュレーションを続行して次のマトリックスに進むことです。この例では、答えは次のようになります50 1 0 0 0

4

2 に答える 2

1

関数を介して結果を送信するだけisemptyです:

temp = [25 0 0 0 0;30 1 1 0 0;14 0 0 1 0];
h = idxfun(temp);
if (isempty(h))
    disp('Pattern not found');
else
    disp('Pattern found');
end

temp = [12 0 0 1 0;50 1 0 0 0;24 1 1 1 0];
h = idxfun(temp);
if (isempty(h))
    disp('Pattern not found');
else
    disp('Pattern found');
end
于 2013-02-05T03:52:59.073 に答える
-1

あなたは使用することができtryますcatch

 try
    a = result( idxfun( result ), : );
 catch em
    a = [];
    fprintf(1, 'no match found\n');
 end
于 2013-02-05T07:30:55.497 に答える