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

Antworten (1)

Honglei Chen
Honglei Chen am 8 Mär. 2012

0 Stimmen

gallery('circul',[1 2 3])'
You can then take the first L columns

4 Kommentare

S. David
S. David am 8 Mär. 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 am 8 Mär. 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 am 15 Mär. 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 am 15 Mär. 2012
Very simple
x=[1 2 3 4 5];
P=gallery('circul',x)';
G=P(:,1:3);

Melden Sie sich an, um zu kommentieren.

Gefragt:

am 8 Mär. 2012

Community Treasure Hunt

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

Start Hunting!

Translated by