Matlab:"for loop"不会减少

abh*_*eja 1 matlab

有人可以帮我解决这个循环吗?Matlab简单地拒绝考虑for o=k:k-20if语句中的语句.

if d(k)<=-1.5 || d(k) >=1.5
        k
        tab=tab+1
        6
        %table_results(k,:)=[5, d(k), E(k,1), b(k,1), F(k,1)];
        for o=k:k-20  
            5
            if abs(d(o))<abs(d(o-1))
            bench_value=o;
            break;
            end
        end
    .
    .
    .
    .
    end
Run Code Online (Sandbox Code Playgroud)

Raf*_*iro 5

试试这个:

for o=k:-1:k-20
Run Code Online (Sandbox Code Playgroud)

当你写for variable=1:5(例如)Matlab的将扩大1:5[1 2 3 4 5]和通过每个价值for.既然你从kk-20时,:操作者返回一个空数组,因为它增加从第一个到最后一个值的值.为了减少它,你应该-1在中间传递.例如,5:-1:1将扩展为[5 4 3 2 1].