Creating a Matrix from a given Vector.

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 日

0 投票

Check "diag" function.
Andrei Bobrov
Andrei Bobrov 2016 年 5 月 22 日
編集済み: Andrei Bobrov 2016 年 5 月 23 日

0 投票

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 月 22 日
The answer is a 4*4 matrix but should be a 4*3 matrix.
Andrei Bobrov
Andrei Bobrov 2016 年 5 月 22 日
編集済み: Andrei Bobrov 2016 年 5 月 22 日
Where is 4*4 in answer?
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.

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

カテゴリ

ヘルプ センター および File ExchangeMultidimensional Arrays についてさらに検索

製品

質問済み:

2016 年 5 月 22 日

編集済み:

2016 年 5 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by