Converting Vector to matrix.

Hello!
I want to convert vector:
V = [1 2 3 4 5 6 7 8 9]
To
V1 = [
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 ]
Is there a Matlab command that will let me do this? or this needs to be coded?
Thanks
KIB

 采纳的回答

It wasn't clear to me how general V might be, but I think this will do what you want.
V = 1:9;
N = numel(V);
N1 = ceil(N/2);
h = hankel(V);
V1 = h(1:N1,1:N1)

更多回答(2 个)

Also not sure how general you want the method to be, but here is another way for your particular example:
n = ceil(numel(V)/2);
V1 = bsxfun(@plus,1:n,(0:n-1)');
Kyle
Kyle 2011-8-6

0 个投票

I have lots of historical data that I can sometime be up to 20,000 points. I want to covert this array to V1 array as described in my original post. The matrix could be X columns wide (X could be 10,20,40, or 100 columns). The ideal solution is I can specify X columns to get the desired matrix.

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by