在此先感谢您的帮助。
假设我有一个多重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纳入其中以实现此目的,但是我还没有找到一种方法。y和x可以并且可以重组以完成此任务,只要生成相同的z,并且最重要的是,构建z所需的时间少于for循环方法。
我能找到这其中我想要做什么,但仅限于乘法而不是加法。我可以修改此代码以执行我想要的操作,但是总的来说,我觉得必须有一个更简单的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句