我在matlab中处理以下代码:
m=unique(x);
for i=1:length(m)
%some code that increase the number of unique values in x
.......
.......
%here I tried to update m
m=unique(x);
end
虽然我通过在for end之前写这行m
来更新m=unique(x);
,但for循环的限制仍具有相同的旧值。我需要动态更新for循环的限制。那可能吗?如果有可能,怎么办?
答案 0 :(得分:5)
当MATLAB符合for i = 1:length(m)
时,它会将语句转换为for i = [1 2 3 ... length(m)]
。您可以将其视为硬编码。因此,在for循环内更新for-limit不会产生影响。
m = unique(x);
i = 1;
while true
if i > length(m)
break
end
% do something
i = i + 1;
m = unique(x);
end