MATLAB中的矩阵操作

时间:2011-04-06 19:03:38

标签: matlab matrix

我有一个简单的矩阵:[3 5 9 10]。我怎样才能将其转换为: [3 0 ; 5 3 ; 9 5 ; 10 9]

我尝试过使用hankel等但是没有用。这需要是一个向量运算(对于/ while循环没有)。谢谢!

2 个答案:

答案 0 :(得分:4)

你很亲密。您实际上想要使用函数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)].'

答案 1 :(得分:1)

a = 1:4;

b = repmat(a',1,2);
b(:,2) = b(:,2)-1;
相关问题