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 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by