I'm having a divide problem in matrices

P =[ 1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1]
s =[0.6500
0.8000
1.0000
1.4000
1.5000
1.9500]
P=diag(eye(6)./s) % I'm getting an error here.
% This is the matrix I want to create.
P= [ 1.5385 0 0 0 0 0
0 1.2500 0 0 0 0
0 0 1.0000 0 0 0
0 0 0 0.7143 0 0
0 0 0 0 0.6667 0
0 0 0 0 0 0.5128]

 採用された回答

KSSV
KSSV 2017 年 4 月 7 日
編集済み: KSSV 2017 年 4 月 7 日

1 投票

P=diag(ones(6,1)./s)
Or
P=diag(diag(P)./s)

その他の回答 (2 件)

Thorsten
Thorsten 2017 年 4 月 7 日
編集済み: Thorsten 2017 年 4 月 7 日

0 投票

P = diag(1./s);
Andrei Bobrov
Andrei Bobrov 2017 年 4 月 7 日
編集済み: Andrei Bobrov 2017 年 4 月 7 日

0 投票

P_out = P./s;
or just
P = eye(6)./s;

1 件のコメント

Muhendisleksi
Muhendisleksi 2017 年 4 月 7 日
"Error using ./ Matrix dimensions must agree."
Gave the error

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

カテゴリ

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by