Creating a diagonal matrix

3 ビュー (過去 30 日間)
Gratitude Kim
Gratitude Kim 2017 年 8 月 5 日
編集済み: Andrei Bobrov 2017 年 8 月 6 日
I will like to create such diagonal matrix. A=[1 1 1 0 0 0; 0 1 1 1 0 0; 0 0 1 1 1 0; 0 0 0 1 1 1] Appreciate your kind assitance.

回答 (4 件)

Matt J
Matt J 2017 年 8 月 5 日
A=conv2(eye(4),[1,1,1])
  1 件のコメント
Andrei Bobrov
Andrei Bobrov 2017 年 8 月 6 日
+1

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


John D'Errico
John D'Errico 2017 年 8 月 5 日
編集済み: John D'Errico 2017 年 8 月 5 日
That is not a diagonal matrix, not by the common definition of the term. It has non-zero diagonals, but that is as far as I might go.
Still trivial though.
triu(tril(ones(4,6),2))
ans =
1 1 1 0 0 0
0 1 1 1 0 0
0 0 1 1 1 0
0 0 0 1 1 1
Or...
toeplitz([1 0 0 0]',[1 1 1 0 0 0])
ans =
1 1 1 0 0 0
0 1 1 1 0 0
0 0 1 1 1 0
0 0 0 1 1 1

Andrei Bobrov
Andrei Bobrov 2017 年 8 月 5 日
編集済み: Andrei Bobrov 2017 年 8 月 6 日
full(spdiags(ones(4,3),0:2,4,6))
or
t = true(4,6);
out = tril(t,2) & triu(t)
or
a = triu(ones(4,3));
out = [a,rot90(a,2)]

Matt J
Matt J 2017 年 8 月 5 日
編集済み: Matt J 2017 年 8 月 5 日
You could also use interpMatrix ( Download ) in a somewhat weird way,
A=full( interpMatrix( [1,1,1] , 1,4,1,'allcontrib') )

カテゴリ

Help Center および File ExchangeOperating on Diagonal Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by