MATLAB: Assigning values to a matrix in a particular way for an algorithm

matrix arraymatrix manipulation

Hi I need to construct a (n,m) matrix like :
x(0) x(-1) x(-2)..........
x(1) x(0) x(-1)..........
x(2) x(1) x(0)...........
.............................
.............................
x(n-1) x(n-2) x(n-m)
x(n)is an input signal- x(0),x(1),x(2)….x(n-1) which will be generated by rand command.
I need this matrix for an algorithm.
Can anyone show me how to assign these input values in this matrix form?
And what about x(-1), x(-2) etc in the very first stage? Should they be kept zero?
Thank you

Best Answer

  • Your matrix is a toeplitz matrix which you can generate with the toeplitz command.
    As to your question "And what about x(-1), x(-2) etc in the very first stage? Should they be kept zero?". How should we know? It's your algorithm, hence your decision to make. Assuming you want 0:
    x = rand(1, 5)
    m = toeplitz(x, [x(1) zeros(1, numel(x)-1)])
    %note that if you don't mind the warning message
    %m = toeplitz(x, zeros(size(x)))
    %works just the same