Creating a special matrix

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.

 Accepted Answer

Star Strider
Star Strider on 13 Apr 2014
Edited: Star Strider on 13 Apr 2014
One way:
v = [0 0 1 1 1 ];
A = [v; circshift(v,[0 -1]); circshift(v,[0 -2])]

2 Comments

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?
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.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 13 Apr 2014

Edited:

on 13 Apr 2014

Community Treasure Hunt

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

Start Hunting!