假设我有两个矩阵,如:
A = [1 2;
3 4;
5 6];
和
B = [1 1 1;
2 2 2;
3 3 3;
4 4 4;
5 5 5;
6 6 6];
我要做的是将i
A
行与2*(i-1)+1
中2*i
到B
行的[1 2]*[1 1 1;2 2 2]
行重叠,如:
A
并将结果组合在一起。结果矩阵的大小为3X3。我当然知道我可以做一个for循环来获得我的结果。但我的B
和// Fetch some data
$data = get_data();
// Turn on output buffering with the gzhandler
ob_start('ob_gzhandler');
// Output as normal
echo json_encode($data);
实际上非常大,因此循环成本太高。
有人可以在没有for循环的情况下给我任何关于如何做到这一点的建议吗?我非常感谢你的帮助。
答案 0 :(得分:4)
正如评论中所述,bsxfun
可以在重塑B
之后使用,就像这样 -
squeeze(sum(bsxfun(@times,reshape(B,size(A,2),[],size(B,2)),A.'),1))