Matlab:如何动态更新for循环的限制?

时间:2016-09-16 09:49:22

标签: matlab for-loop limit updates

我在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循环的限制。那可能吗?如果有可能,怎么办?

1 个答案:

答案 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