添加矩阵循环迭代matlab

时间:2014-03-14 21:42:23

标签: matlab for-loop matrix fibonacci

我创建了一个函数Cont_frac(n),返回“连续分数”的第n个元素和其他fib(n),它返回斐波那契序列的第n个元素和n-1元素之间的quocient。我想编写一个循环,它返回一个矩阵,其中包含我的两个函数的值以及黄金比率之间的相应差异。

我认为以下代码但是matlab说在赋值A(I)= B中,B和I中的元素数必须相同。

matrix=zeros(5,4);
phi=(1+sqrt(5))/2
    for i=1:5
       matrix(i)=[Cont_frac(i);fib(i);abs(Cont_frac(i)-phi);abs(fib(i)-phi)]
    end

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您无法将矢量值指定给标量matrix(i)。您需要明确告诉MATLAB您希望将RHS存储为第i个位置的向量。 因此,代码应为:

matrix=zeros(4,5); %This dimension was incorrect given what you wanted to achieve.
phi=(1+sqrt(5))/2
    for i=1:5
       matrix(:,i)=[Cont_frac(i);fib(i);abs(Cont_frac(i)-phi);abs(fib(i)-phi)] 
       %Notice the second index in the matrix
    end