我有两个大小为X
800E3x45
且大小为W
的{{1}}的矩阵。如何创建大小为45x35
的矩阵,其中每个条目都是800E3x35
行和X
列的点积?
答案 0 :(得分:1)
也许这不是阅读和理解代码的最佳方式,但您可以使用下一个公式在矢量化视图中执行此操作:
res = cell2mat( arrayfun(@(y) arrayfun( @(x) dot( X(y,:), W(:,x)), 1:size(W,2)), ...
(1:size(X,1))', 'UniformOutput', false) )
说明:
dot( X(y,:), W(:x))
- 对于X的每一行(y表示行号),我们为W的所有列(x是W列)取点。arrayfun
(内部)获取W arrayfun
(extern)获取X的每一行。 P.S。我认为使用bsxfun
可以有更优雅的解决方案,但这是我能想象的第一个。