MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

split a diagonal matrix

Elysi Cochin さんによって質問されました 2019 年 3 月 18 日
最新アクティビティ Jos (10584)
さんによって コメントされました 2019 年 3 月 18 日
v = [2 1 4];
D = diag(v)
Having a diagonal matrix, i wanted to split the diagonal matrix as below
M1 = [
2 0 0
0 0 0
0 0 0]
M2 = [
0 0 0
0 1 0
0 0 0]
M3 = [
0 0 0
0 0 0
0 0 4]
working for any dimension diagonal matrix

  1 件のコメント

Jos (10584)
2019 年 3 月 18 日
What do you mean by "working for any dimension diagonal matrix" ?
Any number of elements in V? In that case, see my answer below.

サインイン to comment.

2 件の回答

KSSV
回答者: KSSV
2019 年 3 月 18 日
 採用された回答

v = [2 1 4];
nx = length(v) ;
M = zeros(nx,nx,nx) ;
for i = 1:nx
M(i,i,i) = v(i) ;
end

  0 件のコメント

サインイン to comment.


Jos (10584)
回答者: Jos (10584)
2019 年 3 月 18 日

Having a vector V with any number of elements, this does the job:
V = [2 1 4]
n = numel(V) ;
M = zeros(n,n,n) ;
M(linspace(1, n^3, n)) = V
If you have a diagonal matrix D, use V = diag(D) first.

  0 件のコメント

サインイン to comment.



Translated by