我正在使用代码
k = 0;
while k<3
k = k+1;
a = 5^k;
disp(a);
end
但是,当结果输出时,它只给出了一次迭代的答案。我想知道当您使用此代码时计算机的不同之处是:
clear, clc
k = 0;
while k<3
k = k+1;
a(k) = 5^k;
end
disp(a)
为什么第一个代码示例仅输出125,而第二个输出5,25和125?
答案 0 :(得分:1)
在第一个代码中,变量a
是标量。
因此,Matlab在每次迭代中擦除并重写值到变量a
。
但是,在第二个代码的情况下,当您在变量k
定义数组索引a
时,Matlab将您的变量a(k)
理解为数组变量。并且,在每次迭代中,Matlab都会在相应的数组点上写入赋值5^k
。