C = circulant(V) or circulant(V, 1) returns the circulant matrix C
based on the row/column vector V. C is a square matrix in which each
row/column is a formed by circularly shifting the preceeding row/column
forward by one element. The first row (or column) is equal to V.
C = circulant(V, -1) applies a backward shift, returning a symmetric
matrix, so that C equals TRANSPOSE(C). In this case, it does not matter
if V is a row or column vector.
Examples:
circulant([2 3 5]) % forward shift
% -> 2 3 5
% 5 2 3
% 3 5 2
circulant([2 3 5].') % column input
% -> 2 5 3
% 3 2 5
% 5 3 2
circulant([2 3 5], -1), circulant([2 ; 3 ; 5], -1) % backward shift
% for both row or column vectors, this returns a symmetric matrix:
% -> 2 3 5
% 3 5 2
% 5 2 3
The output has the same type as the input.
V = {'One' '2' 'III'}
circulant(A)
% -> 'One' '2' 'III'
% 'III' 'One' '2'
% '2' 'III' 'One'
Notes:
- This version is completely based on indexing and does not use loops,
repmat, hankel, toeplitz or bsxfun. It should therefore run pretty
fast on most Matlab versions.
- See http://en.wikipedia.org/wiki/Circulant_matrix for more info on
circulant matrices.
See also toeplitz, hankel
latsq, ballatsq (on the file Exchange)
Cita come
Jos (10584) (2025). circulant (https://www.mathworks.com/matlabcentral/fileexchange/22876-circulant), MATLAB Central File Exchange. Recuperato .
Compatibilità della release di MATLAB
Compatibilità della piattaforma
Windows macOS LinuxCategorie
Tag
Riconoscimenti
Ispirato da: Circular Matrix computation, Circulant matrix
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Scopri Live Editor
Crea script con codice, output e testo formattato in un unico documento eseguibile.