How to construct this matrix without using two for loops?

3 次查看(过去 30 天)
Hi, I'm trying to construct a matrix in the following manner:
sz=10;
V=rand(sz,sz);
X=rand(sz,sz);
for iter1=1:sz
for iter2=1:sz
A(iter1,iter2) = sum((V(:,iter1)*V(:,iter2)').*X,[1 2]);
end
end
Is there a way to do this without for-loops? I'm sure there must be a way that I haven't been able to think of!
  2 个评论
DGM
DGM 2021-5-13
编辑:DGM 2021-5-13
What are i and j? By default, both i and j are sqrt(-1), which isn't a valid index. Are they supposed to be iter1 and iter2, or are they defined elsewhere and constant within the scope of the loops?

请先登录,再进行评论。

回答(1 个)

Mohit Kumar
Mohit Kumar 2021-5-13
I was able to figure out the answer to this. The formulation can be written as
A = V' * X * V;

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by