Convert vector to matrix with used-defined step
显示 更早的评论
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.
回答(3 个)
Azzi Abdelmalek
2013-9-24
编辑:Azzi Abdelmalek
2013-9-24
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
2013-9-24
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
>>
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!