我有一个简单的矩阵:[3 5 9 10]
。我如何将它转换为: [3 0 ; 5 3 ; 9 5 ; 10 9]
MATLAB中的矩阵操作
我试过使用hankel等,但没有奏效。这需要是一个向量操作(no for/while循环)。谢谢!
我有一个简单的矩阵:[3 5 9 10]
。我如何将它转换为: [3 0 ; 5 3 ; 9 5 ; 10 9]
MATLAB中的矩阵操作
我试过使用hankel等,但没有奏效。这需要是一个向量操作(no for/while循环)。谢谢!
你就近了。实际上,你想使用的功能,而不是TOEPLITZ:
>> vec = [3 5 9 10];
>> toeplitz(vec,[vec(1) 0])
ans =
3 0
5 3
9 5
10 9
但是,因为你只在你的矩阵2列,这是更简单:
[vec; 0 vec(1:end-1)].'
a = 1:4;
b = repmat(a',1,2);
b(:,2) = b(:,2)-1;
感谢eykanal!但我的问题并不清楚..你的回答对我的初始问题是正确的。 – Maddy 2011-04-06 19:10:58
感谢Kenneth(再次)! – Maddy 2011-04-06 19:11:33