如果数字重复-Matlab如何打破循环

Posted

技术标签:

【中文标题】如果数字重复-Matlab如何打破循环【英文标题】:How to break loop if number repeats -Matlab 【发布时间】:2021-01-24 15:59:42 【问题描述】:

我意识到这对我来说是一个相当困难的问题。我在 Matlab 官方方面提出了这个问题,但也没有人可以帮助我,所以也许你们中的某个人可以提出一个出色的方法。

详细我的问题包括:

N = 100 %some number
G = 21  %random guess < N

for x = 1:N;
a = mod(G^x,N);
end

现在我想停止计算a,如果数字重复的话。

例如:a = 1, 2, 3, 1 -break

看起来很简单,但经过多次尝试后我无法立即处理。

例如我已经提出:

for x = 1:N
    a = mod(G^x,N);
    b = unique(a);
    if a ~= b
        break 
    end 
end

但似乎不起作用。我猜这不是元素明智的。

【问题讨论】:

【参考方案1】:

这种方法会保留过去Results 的运行日志,并使用ismember() 函数检查a 的当前值是否以前见过。

clc;
N = 100; %some number
G = 21;  %random guess < N

Results = NaN(1,N);
for x = 1:N
a = mod(G^x,N);
disp(a);
if ismember(a,Results)
    disp("-break");
    break
end
Results(x) = a;
end

使用 MATLAB R2019b 运行

【讨论】:

以上是关于如果数字重复-Matlab如何打破循环的主要内容,如果未能解决你的问题,请参考以下文章

如何在Python中打破while循环?

如何在matlab中添加绘图标签循环[重复]

如何在 laravel 刀片视图中打破 foreach 循环?

如何打破 Dart 中的嵌套循环

如何打破 IF 语句中的每个循环? [复制]

打破嵌套循环和主循环[重复]