Matrix calculation without a For loop

1 vue (au cours des 30 derniers jours)
H R
H R le 1 Mai 2017
Hi. Suppose A is a 1D matrix of [1 by N], and D and C are two square matrix of [N by N]. I would like to calculate D and C without a loop such that each element of D and C are calculated using elements of matrix A:
C(i,j)=A(i)*A(j)
D(i,j)=(A(i)+A(j))/C(i,j)
for instance:
C(1,1)=A(1)*A(1)
C(1,2)=A(1)*A(2)
C(1,3)=A(1)*A(3)
etc.
Thank you.

Réponse acceptée

Roger Stafford
Roger Stafford le 1 Mai 2017
Given the assumption that A is 1 by N, do this:
C = A(:)*A;
D = bsxfun(@plus,A(:),A)./C;

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by