Hello all,
I want to create this matrix
A=[0 0 1 1 1;0 1 1 1 0;1 1 1 0 0]
How can I get ?
Thank you.

 Réponse acceptée

Star Strider
Star Strider le 13 Avr 2014
Modifié(e) : Star Strider le 13 Avr 2014

0 votes

One way:
v = [0 0 1 1 1 ];
A = [v; circshift(v,[0 -1]); circshift(v,[0 -2])]

2 commentaires

Thewall
Thewall le 13 Avr 2014
Thanks for your answer.
However, I have many columns and rows. I think I should shift 100 times of v vector. How can I do this?
Star Strider
Star Strider le 13 Avr 2014
Modifié(e) : Star Strider le 13 Avr 2014
My pleasure!
Use a for loop. If all you want to do is to shift the columns as you described for each row, change my example code to the more generalised version:
v = [0 0 1 1 1 ];
nrows = 3;
for k1 = 1:nrows
A(k1,:) = circshift(v,[0 1-k1]);
end
Change v to the vector you want, and change the number of rows you want to create (denoted here as the value of the variable nrows) to create your matrix.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by