【问题标题】:How can use isempty function or another function in matlab?如何在 matlab 中使用 isempty 函数或其他函数?
【发布时间】:2013-02-05 00:29:40
【问题描述】:

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

【问题讨论】:

  • 模拟是什么意思?你是如何运行模拟的,它是如何停止的?
  • 您是否尝试在命令行中输入 help isempty?

标签: matlab simulation


【解决方案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

【讨论】:

    【解决方案2】:

    您可以使用trycatch

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

    【讨论】:

      猜你喜欢
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 2017-02-10
      • 2021-01-24
      相关资源
      最近更新 更多