我是Octave的基础,有人可以帮我解决我的代码吗?
A = zeros(40);
format long
function xn=xnf(n,xn,c)
if n<=40
xn = xn^2+c;
A(n,n)=xn;
n++;
xnf(n,xn,c);
end
end
xnf(1,2,-2)
我想将xn值添加到矩阵中,但它始终具有零值 - 为什么?
答案 0 :(得分:1)
对于您指定的值(n=1
,xn=2
,c=-2
),您将获得的矩阵沿主对角线为2,其他地方为零,可以使用{ {1}}。
如果你想改变参数,这段代码可以在Matlab中使用,因此应该在八度音程中工作:
A=diag(2*ones(40,1))
答案 1 :(得分:1)
我对Octave知之甚少但在matlab中如果我想将值xn添加到矩阵A中,我想要的是矩阵然后我会这样做
function A=xnf(n,xn,c,A)
if n<=40
xn = xn^2+c;
A(n,n)=xn;
n=n+1;
A=xnf(n,xn,c,A);
end
end
因为函数内部使用的所有变量都会在您返回后被删除,所以如果您需要A矩阵,请确保将其返回