如果有多个正确答案,如何打印一次? (MATLAB)

How to print ONCE if there are multiple correct answers? (MATLAB)

所以我有 arr = randi([0,20],20,1)。我想证明:如果数字小于 5,则 fprintf('Yes\n') 只执行一次。我正在使用 for 循环(for i = 1 : length(arr))并对其进行索引。

您可以在找到小于 5 的第一个值并打印 Yes 语句后使用 break 语句。

使用 break 语句:

arr = randi([0,20],20,1);

for i = 1: length(arr)
    if arr(i) < 5
    fprintf("Yes\n");
    break;
    end
end

分机:

通过使用any()函数:

或者,如果您想在不需要 for-loop 的情况下简化它,则可以使用 any() 函数来确定数组中的任何值是否满足这种情况下的条件arr < 5.

arr = randi([0,20],20,1);

if(any(arr < 5))
    fprintf("Yes\n");

end

通过使用 While 循环:

Check = 0;
arr = randi([0,20],20,1);

i = 1;
while (Check == 0 && i < length(arr))    
if arr(i) < 5
    fprintf("Yes\n");
    Check = 1;
end

i = i + 1;
end

根据您的描述,也许您需要 for 循环中的 if 语句,如下所示

for i = 1:length(arr)
  if arr(i) < 5
    fprintf('Yes\n');
    break
  end
end

如果想打印一次Yes,可以试试

if any(arr < 5)
  fprintf('Yes\n')
endif

如果您不想使用 break,下面的代码可能是一个选项

for i = 1:min(find(arr <5))
  if (arr(i) < 5)
    fprintf('Yes\n');
  end
end