2016-05-16 128 views
0

我正在使用的代码MATLAB While循环语法

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

你确定第一个代码结果是125吗? – Spiderman

+0

我得到'[5; 25; 125]'和[5,25,125]'这两个代码。为什么你在做'while'而不是'for'? – user1543042

+0

您可能想阅读[入门文档](http://www.mathworks.com/academia/student_version/learnmatlab.pdf) – patrik

回答

1

在第一个代码中,变量a是标量。 因此,Matlab会在每次迭代中擦除并重新写入变量a

但是,在第二个代码的情况下,如您在变量a处定义数组索引k,Matlab会将您的变量a(k)理解为数组变量。并且,在每次迭代中,Matlab都将相应数组点上的指定值5^k写入。

+0

谢谢,这是一个很好的解释和解释! –

+0

不客气! – KKS