How do I create a circulant matrix of shift 3 towards the left ?

1 vue (au cours des 30 derniers jours)
Derick Wong
Derick Wong le 16 Déc 2013
Commenté : Derick Wong le 17 Déc 2013
Hi,
Does anyone know how do I create a circulant matrix like the one I attached. The first 2 row is for the x-axis, center 2 row is for the y-axis and the last 2 row is for the z-axis. The shift from each row is 3. The x-axis started from 1st column. The y-axis started from 2nd column and the z-axis started from 3rd column.
  1 commentaire
Jos (10584)
Jos (10584) le 16 Déc 2013
Given your description, I fail to see how the 3rd row is looking in A. Or has A only six rows? And should it be flexible somehow?

Connectez-vous pour commenter.

Réponse acceptée

Jos (10584)
Jos (10584) le 16 Déc 2013
Modifié(e) : Jos (10584) le 16 Déc 2013
Not very flexible:
A = eye(6)
A = A([1 4 2 5 3 6],:) % permute as desired
A(:,10) = 0 % add some zero columns
  3 commentaires
Jos (10584)
Jos (10584) le 16 Déc 2013
You could help by stating what the third line of A should be:
A = [1 0 0 0 0 0 0 0 . . . line 1
0 0 0 1 0 0 0 0 . . . line 2
WHAT IS HERE!
0 1 0 0 0 0 0 0 line 32
Derick Wong
Derick Wong le 17 Déc 2013
Is abit tedious when I did it. But it surely works. A= eye(93,93); A=A([1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74 77 80 83 86 89 92 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93],:);
Many thanks!

Connectez-vous pour commenter.

Plus de réponses (2)

Matt J
Matt J le 16 Déc 2013
Modifié(e) : Matt J le 16 Déc 2013
Using FUNC2MAT
A=func2mat(@(x)circshift(x,3),zeros(93,1));

Jos (10584)
Jos (10584) le 16 Déc 2013
It does look like a row-permuted circulant
N = 31 ;
dn = 3 ;
A = eye(dn*N) ; % circulant
ix = ones(N,d) ; % make a permution index
ix(1,:) = 1+dn*(0:N-1) ;
ix = cumsum(ix,1) ;
ix = ix.' ;
A = A(ix,:) % row-permutation

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by