我正在拼命尝试避免在Matlab中使用for循环,但我无法想出如何做到。这是情况:
我有两个m x n矩阵A和B,以及长度为d的两个向量v和w。我想要对A和v进行外积运算,以便得到一个m x n x d矩阵,其中(i,j,k)条目是A_(i,j)*v_k,B和w同理。
之后,我想添加结果矩阵m x n x d,然后沿着最后一个维度取平均值,以获得一个m x n矩阵。
我相信我可以处理后者,但前者让我完全卡住了。我尝试使用bsxfun,但无济于事。有人知道一种有效的方法吗?非常感谢!
编辑:此版本是在下面三个很棒的答案之后。gnovice毫无疑问是回答我提出的问题的最佳答案。然而,我原本想问的问题涉及在取平均值之前对每个条目进行平方。我忘记了最初提到这一部分。鉴于这种麻烦,其他两个答案都很好,但在编码之前进行代数上的巧妙技巧这次没有帮助。感谢大家的帮助!
我有两个m x n矩阵A和B,以及长度为d的两个向量v和w。我想要对A和v进行外积运算,以便得到一个m x n x d矩阵,其中(i,j,k)条目是A_(i,j)*v_k,B和w同理。
之后,我想添加结果矩阵m x n x d,然后沿着最后一个维度取平均值,以获得一个m x n矩阵。
我相信我可以处理后者,但前者让我完全卡住了。我尝试使用bsxfun,但无济于事。有人知道一种有效的方法吗?非常感谢!
编辑:此版本是在下面三个很棒的答案之后。gnovice毫无疑问是回答我提出的问题的最佳答案。然而,我原本想问的问题涉及在取平均值之前对每个条目进行平方。我忘记了最初提到这一部分。鉴于这种麻烦,其他两个答案都很好,但在编码之前进行代数上的巧妙技巧这次没有帮助。感谢大家的帮助!
sum
而不是mean
,你的断言就成立了。我将删除我的答案。最好通过代数方式解决这个问题。 - Lambdageek