首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >倍频程不能在循环中填充矩阵

倍频程不能在循环中填充矩阵
EN

Stack Overflow用户
提问于 2013-11-05 05:10:34
回答 2查看 881关注 0票数 0

我是Octave的基础,有人能帮我写代码吗?

代码语言:javascript
复制
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值添加到矩阵中,但它总是只有零值-为什么?

EN

回答 2

Stack Overflow用户

发布于 2013-11-05 05:51:30

对于你指定的值(n=1xn=2c=-2),你将得到的矩阵是沿着主对角线的2,其他地方的0,这可以用A=diag(2*ones(40,1))来实现。

如果您想要更改参数,此代码将在Matlab中工作,因此应该在八度下工作:

代码语言:javascript
复制
N=40;
V=zeros(1,N);
V(1)=xn;
for i=2:N
    V(i)=V(i-1)^2+c;
end
A=diag(V);
票数 1
EN

Stack Overflow用户

发布于 2013-11-05 05:53:57

我对Octave知之甚少,但在matlab中,如果我想要将xn的值添加到矩阵A中,并且我想要的是矩阵,那么我会这样做

代码语言:javascript
复制
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矩阵,请确保返回它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19777177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档