首页 > 解决方案 > 使用for循环(MATLAB)时如何消除不需要的0?

问题描述

作为标题,我写了这些代码:

for n=1:2:10
    a(n)=2^n;
end
disp(a)

我想得到答案

a = 2 8 32 128 512

但命令窗口中的输出是

a = 2 0 8 0 32 0 128 0 512

四个 0 是不需要的,我怎样才能消除这四个 0?

标签: matlab

解决方案


当您使用不以 1 开头或错过某个值的线性索引0时,matlab 用 some 填补空白:

所以你可以使用指数end+1

a = [];

for n=1:2:10
   a(end+1)=2^n;
end

end指示最后一个数组索引,因此end+1在数组中创建一个新条目。

但是对于这么简单的事情,矢量化过程肯定更容易:

a = 2.^(1:2:10)

.^元素级幂运算符在哪里。


推荐阅读