这里有一个非常简单的方法:
>> D = 3;
>> v = 1:ndims(K);
>> v([1,d]) = v([d,1]);
>> S = SUM(REPAPE(允许(k,v),尺寸(k,d),[]),2)
S =
6
22
它通过交换
第一的
和
想要的
尺寸,然后重塑,使得所有尾随尺寸减少到一个。然后沿着每一行逐渐变得如此。
注意,我在这里展示的方法还具有它所具有的显著优势
不
从输入数组中使用数据的副本创建任何变量:这对于缩放到更大的输入阵列将是重要的。还注意到慢而复杂
arrayfun
或者
Cellfun.
是
不
此任务所需!