【发布时间】:2021-02-13 09:15:32
【问题描述】:
所以我有 arr = randi([0,20],20,1)。我想显示:如果数字小于 5,则 fprintf('Yes\n') 仅一次。我正在使用 for 循环(for i = 1 : length(arr))并对其进行索引。
【问题讨论】:
标签: matlab indexing printing matlab-figure
所以我有 arr = randi([0,20],20,1)。我想显示:如果数字小于 5,则 fprintf('Yes\n') 仅一次。我正在使用 for 循环(for i = 1 : length(arr))并对其进行索引。
【问题讨论】:
标签: matlab indexing printing matlab-figure
您可以在找到小于 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 循环的情况下简化它,any() 函数可用于确定数组中的任何值是否满足条件 arr < 5。
arr = randi([0,20],20,1);
if(any(arr < 5))
fprintf("Yes\n");
end
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
【讨论】: