怎么用matlab生成循环矩阵?

发布网友

我来回答

2个回答

热心网友

<BR>lihaiyonglhy@yahoo.com.cn<BR>%
N点循环卷积<BR>x1=[x1
zeros(1,N-length(x1))];
<BR>x2=[x2
zeros(1,N-length(x2))];
<BR>m=0:N-1;
<BR>t=0:N-1;
<BR>x2=x2(mod(-m,N)+1);
%反折<BR>H=zeros(N,N);
<BR>for
n=1:N<BR>

m=mod(m-n+1,N);
<BR>

H(n,=x2(m+1);
%循环移位
<BR>

m=t;
<BR>end
要生成一个N*N方阵,第一行是a1,a2,.,an,第二行是an,a1,a2,.,a(n-1),第三行以此类推,请问怎样根据已知的向量a来生成循环矩阵:
A=[1:10];
n=length(A);
N=zeros(n);
for
j=1:n
N(j,:)=circshift(A,[0,j-1]);
end

热心网友

楼上方法不错!不过有个笔误,a改成a
或用circshift循环移位函数也可以
a=[1:10];
n=length(a);
n=zeros(n);
for
j=1:n
n(j,:)=circshift(a,[0,j-1]);
end
自己看着办

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com