如何在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
答案 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);