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.

 Akzeptierte Antwort

Star Strider
Star Strider am 13 Apr. 2014
Bearbeitet: Star Strider am 13 Apr. 2014

0 Stimmen

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

2 Kommentare

Thewall
Thewall am 13 Apr. 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 am 13 Apr. 2014
Bearbeitet: Star Strider am 13 Apr. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by