我不知道如何使用isempty
功能
例如:
来自模拟的第一个矩阵
[18 1 0 0 0;12 0 0 0 1;15 1 1 0 0]
来自模拟的第二个矩阵
[25 0 0 0 0;30 1 1 0 0;14 0 0 1 0]
来自模拟的第三个矩阵
[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
第二个矩阵答案是:empty matrix:0-by-5
然后模拟停止!我想要的是让模拟继续并转到下一个矩阵,在这个例子中,答案将是50 1 0 0 0
答案 0 :(得分: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
答案 1 :(得分:-1)
您可以使用try
和catch
try
a = result( idxfun( result ), : );
catch em
a = [];
fprintf(1, 'no match found\n');
end