Convert vector to matrix with used-defined step

10 visualizaciones (últimos 30 días)
santos666
santos666 el 24 de Sept. de 2013
Hi.
I want to convert a vector to a matrix but with a step defined by me.
For example:
myVector = [1 2 3 4 5 6];
myMatrix = [1 2; 2 3; 3 4; 4 5; 5 6];
I am familiar with vec2mat but this function does not do what I want.
Using this function to create a 2-column matrix the final result would be:
myMatrix = [1 2; 3 4; 5 6];
I already searched but I couldn't find an answer to this problem.
I am trying to avoid using for loops.
Thank you.
Best Regards.

Respuestas (3)

Azzi Abdelmalek
Azzi Abdelmalek el 24 de Sept. de 2013
Editada: Azzi Abdelmalek el 24 de Sept. de 2013
v=[1 2 3 4 5 6];
v=[v;v];
v=reshape(v(2:end-1),2,[])'
%or simply
v=[1 2 3 4 5 6];
v=[v(1:end-1); v(2:end)]'

dpb
dpb el 24 de Sept. de 2013
Think storage order... :)
One (of many possible) solutions...
>> V = [1 2 3 4 5 6];
>> reshape([V(1) reshape([V(2:end-1)' V(2:end-1)']',1,[]) V(end)],2,[])'
ans =
1 2
2 3
3 4
4 5
5 6
>>

santos666
santos666 el 24 de Sept. de 2013
Editada: santos666 el 24 de Sept. de 2013
Thank you.
You are both right but i realize now that i gave an example too much simple.
Sorry, my mistake.
An harder one:
if true
v = 1:10
m = [
1 2 3 4 5;
2 3 4 5 6;
3 4 5 6 7;
4 5 6 7 8;
5 6 7 8 9;
6 7 8 9 10;
]
end

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by