Multiplication of matrix with It's Diagonal Element to It's Row

1 次查看(过去 30 天)
I Have this below matrix.
z=[a11 a12 a13;
b21 b22 b23;
c31 c32 c33]
I want out put of the Matrix like this.
q=[1 -(a12/a11) -(a13/a11);
(-b21/b22) 1 (-b23/b22);
(-c31/c33) (-c32/c33) 1]
Can you please send me program for this Matrix operation.

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2014-2-15
编辑:Azzi Abdelmalek 2014-2-15
a=[1 2 3;4 5 6;7 8 9]
out=bsxfun(@rdivide, -a,diag(a))
out(sub2ind(size(a),1:size(a,1),1:size(a,1)))=1
  3 个评论
Azzi Abdelmalek
Azzi Abdelmalek 2014-2-15
You should precise that.
m=tf(1,1:2)
a=[m m*2;1+m 5*m+2] % Example
%-------------------------
b=repmat(tf(1,1),size(a))
for k=1:size(a,1)
b(k,:)=-a(k,:)/a(k,k)
b(k,k)=1
end
CHANDRA SHEKHAR BESTA
编辑:CHANDRA SHEKHAR BESTA 2014-2-15
clc
K=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16];
L=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16];
T=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16];
one=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16];
n=4;
for i=1:n
for j=1:n
d{i,j}=tf([K(i,j)],[T(i,j) one(i,j)], [L(i,j)]);
end
end
a=d
%d = 4x4 Matrix with Transfer Function elements
out=bsxfun(@rdivide, -a,diag(a))
%above command giving error
out(sub2ind(size(a),1:size(a,1),1:size(a,1)))=1

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Operating on Diagonal Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by