Creating a Matrix from a given Vector.

2 ビュー (過去 30 日間)
Carlos Martínez
Carlos Martínez 2016 年 5 月 22 日
編集済み: Andrei Bobrov 2016 年 5 月 23 日
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]

回答 (2 件)

Ahmet Cecen
Ahmet Cecen 2016 年 5 月 22 日
Check "diag" function.

Andrei Bobrov
Andrei Bobrov 2016 年 5 月 22 日
編集済み: Andrei Bobrov 2016 年 5 月 23 日
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 件のコメント
Carlos Martínez
Carlos Martínez 2016 年 5 月 23 日
編集済み: Carlos Martínez 2016 年 5 月 23 日
Sorry, I didn't realize you edited, but, ¿for a 1xn vector?
Andrei Bobrov
Andrei Bobrov 2016 年 5 月 23 日
Corrected. Work for any vectors.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by