SCILAB-如何在代码中实现post或pre增量

时间:2015-04-07 17:25:03

标签: scilab

如何在scilab上执行增量功能?

我尝试在scilab上运行以下代码但不成功。

a=0;
even=0;
odd=0;

for x=1:10
a=a+1
if modulo(a,2)==0
disp("Even");
even++;
else
disp("Odd");
odd++;
end
disp(even);
disp(odd);
end

1 个答案:

答案 0 :(得分:1)

Scilab不支持C风格的递增语法(即even++odd++)。您需要显式执行赋值并将1添加到变量中。因此:

a=0;
even=0;
odd=0;

for x=1:10
    a=a+1;
    if modulo(a,2)==0
        disp("Even");
        even = even + 1; %// Change
    else
        disp("Odd");
        odd = odd + 1; %// Change
    end
    disp(even);
    disp(odd);
end

但是,使用带有循环计数器a的变量x以与a相同的方法递增是相当多余的。考虑用a替换循环计数器并从0开始循环并结束于9:

even=0;
odd=0;

for a=0:9 %// Change
    if modulo(a,2)==0
        disp("Even");
        even = even + 1; %// Change
    else
        disp("Odd");
        odd = odd + 1; %// Change
    end
    disp(even);
    disp(odd);
end

更有效的矢量化方法是使用sum而不是循环。您可以轻松地按照自己的意愿行事:

a=0:9;
even = sum(modulo(a,2) == 0);
odd = sum(modulo(a,2) == 1);
disp(even);
disp(odd);