Matrix calculation without a For loop

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.

 採用された回答

Roger Stafford
Roger Stafford 2017 年 5 月 1 日

0 投票

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品

タグ

質問済み:

H R
2017 年 5 月 1 日

回答済み:

2017 年 5 月 1 日

Community Treasure Hunt

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

Start Hunting!

Translated by