Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Matlab找到5个连续的成功案例?_Matlab - Fatal编程技术网

使用Matlab找到5个连续的成功案例?

使用Matlab找到5个连续的成功案例?,matlab,Matlab,我有一个函数,可以在10个周期内找到单个传感器值和平均传感器值之间的差异。使用此功能将进行100次测试。因此,每次时间周期>10,我都会强制它为零,这样在第11次重复中,它将从零开始重新计数。代码如下: cycle=cycle +1; if cycle>10 cycle=0; end for i=1: TotalnoOfGrids for j=1: noOfNodes if abs(char(Allquants{i}(j))-char(mostCommonLetters

我有一个函数,可以在10个周期内找到单个传感器值和平均传感器值之间的差异。使用此功能将进行100次测试。因此,每次时间周期>10,我都会强制它为零,这样在第11次重复中,它将从零开始重新计数。代码如下:

cycle=cycle +1;
if cycle>10
  cycle=0;
end

for i=1: TotalnoOfGrids
  for j=1: noOfNodes
    if abs(char(Allquants{i}(j))-char(mostCommonLetters {i}))>0
      if cycle>0
        wrong{i}(j)=wrong{i}(j)+1;
      else 
        wrong{i}(j)=0;
      end
    end
  end
end
现在我需要知道传感器是否在10个周期内连续成功运行了5次。我该怎么做

我想到了一个循环,但我读到它需要太多的时间

在网上搜索我找到的


问题是,上述功能将重复100个周期。我想每10个周期查看是否有连续的成功,因此它是动态完成的,并且我没有为周期保存传感器的成功或失败状态。因此,我没有一个包含1或0的向量来使用上述参考中使用的函数,或者正如Jonas建议的那样

如果循环是最简单的事情,请尝试一下仅仅因为你读过它“花费了太多的时间”,并不意味着它对你的案例真的有影响!的确,在Matlab中,避免循环通常是有意义的;但在您的情况下,100*20*9(如果我理解正确的话)循环迭代似乎还没有那么糟糕(取决于您的速度要求)

编辑(正确答案)

我现在从您的评论中了解到,您向我们展示的代码被一个
while
for
循环包围,该循环正在运行约100次,
所有数量和
大多数普通字母在该循环内可能会发生变化。在这种情况下,我先前的回答对你不起作用,因为它在不同的传感器上计算成功;现在应该更好了

如果我读对了代码,条件
abs(char(Allquants{I}(j))-char(mostcommonicletters{I}))>0
告诉您结果是“错误的”;因此,

for i=1:TotalnoOfGrids
  this_cycle_successes(i,:)=char(Allquants{i})==char(mostCommonLetters{i});
end
consecutive_successes=(consecutive_successes+1).*this_cycle_successes;
会计算出你连续取得了多少成功。注意:在开始
循环之前,您需要初始化
连续的\u成功
,例如

consecutive_successes = zeros(9,20);
在10个循环后,您可以检查哪些传感器有5次成功,如下所示:

 has5successes = consecutive_successes>=5;

请注意,这是一个矩阵运算,所以现在您将获得9*20的值,正如您在注释中所要求的。此解决方案不需要循环
j

在您的代码中什么算成功?我正在计算错误,因此如果错误为0,则成功为1对?您正在计算每个网格和每个节点的错误。连续5次成功是什么?也,
错误
是一个单元阵列-有什么原因吗?我有9个网格,每个网格中有20个传感器。单元误差包含9个网格中的传感器给出错误值的次数。关于5次成功,我将从所有传感器获取读数,如果任何传感器连续给出5次正确,我需要知道您编写的成功方程式@乔纳斯不会以这种方式计算成功的数量,对吗?它将覆盖我只得到9个值的has5成功,我怀疑是9*20。我希望你最近的评论没有正确的英语句子;你的最后一句话令人费解。对不起,我放弃了。有一个尺寸问题:??错误使用==>mtimes内部矩阵维度必须一致。如果使用此项,则解决连续的\u成功=(连续的\u成功+1)。*此\u周期的\u成功;