MATLAB Answers

Matrix calculation without a For loop

2 views (last 30 days)
H H
H H on 1 May 2017
Answered: Roger Stafford on 1 May 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.

Accepted Answer

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

More Answers (0)

Tags

Products

Community Treasure Hunt

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

Start Hunting!