Creating a Matrix from a given Vector.

1 Ansicht (letzte 30 Tage)
Carlos Martínez
Carlos Martínez am 22 Mai 2016
Bearbeitet: Andrei Bobrov am 23 Mai 2016
Hello, I want to make a matrix with the next features, given a vector, the columns of the matrix must be: In the first column, the vector and the other elements of the column zero, then for the next column, 0 followed by the vector and then the others elements zeros, and so on, on the last column, the final elements of it must ve the vector, here is an example:
h=[1, -0.5]
The matrix must be:
[1 , 0 , 0; -0.5, 1 , 0; 0 , -0.5, 1; 0 ,0 , -0.5]

Antworten (2)

Ahmet Cecen
Ahmet Cecen am 22 Mai 2016
Check "diag" function.

Andrei Bobrov
Andrei Bobrov am 22 Mai 2016
Bearbeitet: Andrei Bobrov am 23 Mai 2016
h=[1, -0.5];
m = 3; % m - number of columns in out - matrix
out = full(spdiags(ones(m,1)*fliplr(h(:)'),[-1 0],m + numel(h) - 1,m));
or
out = toeplitz([h(:);zeros(m-1,1)],[h(1);zeros(m-1,1)]);
or
n = numel(h);
m1 = m + n - 1;
out = zeros(m1,m);
out(bsxfun(@plus,(1:n)',(0:m-1)*(m1+1))) = 1;
out(out>0) = h(:)*ones(1,m);
  4 Kommentare
Carlos Martínez
Carlos Martínez am 23 Mai 2016
Bearbeitet: Carlos Martínez am 23 Mai 2016
Sorry, I didn't realize you edited, but, ¿for a 1xn vector?
Andrei Bobrov
Andrei Bobrov am 23 Mai 2016
Corrected. Work for any vectors.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by