【发布时间】:2017-03-24 06:29:42
【问题描述】:
我有两个矩阵,大小为800E3x45 的X 和大小为45x35 的W。如何创建大小为800E3x35 的矩阵,其中每个条目是X 行和W 列的点积?
【问题讨论】:
-
试试
M = X*W -
为什么你所有的问题都一样?
标签: matlab matrix dot-product
我有两个矩阵,大小为800E3x45 的X 和大小为45x35 的W。如何创建大小为800E3x35 的矩阵,其中每个条目是X 行和W 列的点积?
【问题讨论】:
M = X*W
标签: matlab matrix dot-product
也许这不是阅读和理解代码的最佳方式,但您可以使用下一个公式在矢量化视图中做到这一点:
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 的每一行。附:我认为可以有更优雅的解决方案,smth 使用bsxfun 但这是我能想象的第一个。
【讨论】: