I'm having a divide problem in matrices

1 view (last 30 days)
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]

Accepted Answer

KSSV
KSSV on 7 Apr 2017
Edited: KSSV on 7 Apr 2017
P=diag(ones(6,1)./s)
Or
P=diag(diag(P)./s)

More Answers (2)

Thorsten
Thorsten on 7 Apr 2017
Edited: Thorsten on 7 Apr 2017
P = diag(1./s);

Andrei Bobrov
Andrei Bobrov on 7 Apr 2017
Edited: Andrei Bobrov on 7 Apr 2017
P_out = P./s;
or just
P = eye(6)./s;
  1 Comment
Muhendisleksi
Muhendisleksi on 7 Apr 2017
"Error using ./ Matrix dimensions must agree."
Gave the error

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!