我是 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 值添加到矩阵中,但它总是只有零值 - 为什么?
我对 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 矩阵,请确保你返回它
对于您指定的值 ( n=1
, xn=2
, c=-2
),您将获得的矩阵沿主对角线为 2,其他任何地方为零,可以使用A=diag(2*ones(40,1))
.
如果您想更改参数,此代码将在 Matlab 中工作,因此应该在八度音程中工作:
N=40;
V=zeros(1,N);
V(1)=xn;
for i=2:N
V(i)=V(i-1)^2+c;
end
A=diag(V);