Creating a Matrix from a given Vector.
Mostrar comentarios más antiguos
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]
Respuestas (2)
Ahmet Cecen
el 22 de Mayo de 2016
0 votos
Check "diag" function.
Andrei Bobrov
el 22 de Mayo de 2016
Editada: Andrei Bobrov
el 23 de Mayo de 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 comentarios
Carlos Martínez
el 22 de Mayo de 2016
Andrei Bobrov
el 22 de Mayo de 2016
Editada: Andrei Bobrov
el 22 de Mayo de 2016
Where is 4*4 in answer?
Carlos Martínez
el 23 de Mayo de 2016
Editada: Carlos Martínez
el 23 de Mayo de 2016
Andrei Bobrov
el 23 de Mayo de 2016
Corrected. Work for any vectors.
Categorías
Más información sobre Multidimensional Arrays en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!