Azzera filtri
Azzera filtri

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

2 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Azzi Abdelmalek
Azzi Abdelmalek il 15 Feb 2014
Modificato: Azzi Abdelmalek il 15 Feb 2014
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 Commenti
Azzi Abdelmalek
Azzi Abdelmalek il 15 Feb 2014
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 il 15 Feb 2014
Modificato: CHANDRA SHEKHAR BESTA il 15 Feb 2014
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

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Operating on Diagonal Matrices in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by