提前感谢您的帮助。
假设我有一个多D数组x,那么
x(:,:,1) = [1 2; 3 4];
x(:,:,2) = [5 6; 7 8];
和矩阵y使得
y = [1 2; 5 6];
我想将第一行y添加到x(:,:,1)的每一行,将第二行y添加到x(:,:,2)的每个元素。这将生成一个数组z,使
z(:,:,1) = [2 4; 4 6];
z(:,:,2) = [10 12; 12 14];
实际上(不是我给出的例子)我想在一个非常大的多D数组x和一个非常大的矩阵y上进行这个操作。因此,我希望尽可能高效地完成这项工作。
天真的方法是使用for循环来做到这一点,但这不会有效。我相信一种有效的方法是将bsxfun纳入其中,但我还没有能够找到一种方法。只要生成相同的z,y和x就可以重构以完成此任务,最重要的是,构建z所需的时间少于for循环方法。
我能够找到this来做我想要的,但仅用于乘法而不是求和。我可以修改这段代码来做我想做的事情,但我感觉好像总结一下,必须有一个更简单的方法。