Column Circulant Matrix

Hello,
How to create the following coulumn circulant matrix in matlab:
X=
[
x_0 x_{p-1} .... x_{P-L}
x_1 x_0 .... x_{P-L+1}
.
.
.
x_{p-1} x_{p-2} ... x_{P-L-1}
]
where p>L and both are positive integers.
Thanks

Risposte (1)

Honglei Chen
Honglei Chen il 8 Mar 2012
gallery('circul',[1 2 3])'
You can then take the first L columns

4 Commenti

S. David
S. David il 8 Mar 2012
May be I was not clear. I have the first column, but I need to create the whole matrix using it. The question is how? Thanks
Honglei Chen
Honglei Chen il 8 Mar 2012
Just pass your first column in the place of [1 2 3] in the above code and see what the output is. The last transpose should restore your circulant matrix on columns.
S. David
S. David il 15 Mar 2012
Ok, good. Now how can I control the number of column's circular shifts? I mean, I do not want the circulant matrix to be square. For example, say I want something like:
X=[
1 5 4
2 1 5
3 2 1
4 3 2
5 4 3
]
Thanks.
S. David
S. David il 15 Mar 2012
Very simple
x=[1 2 3 4 5];
P=gallery('circul',x)';
G=P(:,1:3);

Accedi per commentare.

Richiesto:

il 8 Mar 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by