如何在matlab中使用isempty函数或其他函数?

时间:2013-02-05 00:29:41

标签: matlab simulation

我不知道如何使用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

2 个答案:

答案 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)

您可以使用trycatch

 try
    a = result( idxfun( result ), : );
 catch em
    a = [];
    fprintf(1, 'no match found\n');
 end