Filter löschen
Filter löschen

creating a matrix by a vector in the following condition

3 Ansichten (letzte 30 Tage)
Bahar
Bahar am 22 Feb. 2018
Beantwortet: SRT HellKitty am 23 Feb. 2018
Imagine that there is a vector, such as:
v=[a1; a2; a3; a4; a5; a1; a2; a3; a4; a5; a1; a2; a3; a4; a5; a1; a2; a3; a4; a5; a1; a2; a3; a4; a5;]
I need to rearrange this vector and transfer it to a matrix such that the elements are positioned like the following matrix:
matrix=
a1 a2 a3
a2 a1 a2
a3 a2 a1
a4 a3 a2
a5 a4 a3
a1 a2 a3
a2 a1 a2
a3 a2 a1
a4 a3 a2
a5 a4 a3
I need a for loop that creates this matrix. It is like each column starts with the second element of the previous column(e.g.: a2 in column 2) and ends at the one to the last element of the previous column(e.g: a3 at column 3). Also, it happens for each block (a1 to a5).
I could not explain it very well but hopefully, the example makes it clear.
Thanks in advance for your help.
  2 Kommentare
James Tursa
James Tursa am 23 Feb. 2018
Bearbeitet: James Tursa am 23 Feb. 2018
No, this is not clear. For one, your 3rd column does not seem to satisfy the "starts with the second element of the previous column" rule. And I can't figure out the rule for filling in the in-between elements either. Why do you have to use a for-loop?
Bahar
Bahar am 23 Feb. 2018
Ok forget what I explained, please just look at the example. the first block of the matrix is:
a1 a2 a3
a2 a1 a2
a3 a2 a1
a4 a3 a2
a5 a4 a3
And the second block is the same which adds to the first one.
a1 a2 a3
a2 a1 a2
a3 a2 a1
a4 a3 a2
a5 a4 a3
a1 a2 a3
a2 a1 a2
a3 a2 a1
a4 a3 a2
a5 a4 a3
And it needs to create by the above vector.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

SRT HellKitty
SRT HellKitty am 23 Feb. 2018
If each column is always going to be the same length and 'v' is always going to be 1-5 repeated this should work.
matrix = [[v(1:10)], [v(2); v(1:9)], [v(3); v(2); v(1:8)]]

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help 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