Arrays 将较小的数组添加到较大数组的一部分?
我有一个尺寸为64x45x14的大数组 我将其初始化为全零,如下所示:Arrays 将较小的数组添加到较大数组的一部分?,arrays,matlab,Arrays,Matlab,我有一个尺寸为64x45x14的大数组 我将其初始化为全零,如下所示: Main = zeros(64,4,45,14); 我有另一个尺寸为45x14的数组S_平均值 如果我这样做,为什么Matlab会给出一个错误 Main(chan_no,level,:,:) = Main(chan_no,level,:,:) + S_avg ; 你必须先重塑矩阵S_avg,在这里试试这个 Main(chan_no,level,:,:) = Main(chan_no,level,:,:) + reshap
Main = zeros(64,4,45,14);
我有另一个尺寸为45x14的数组S_平均值
如果我这样做,为什么Matlab会给出一个错误
Main(chan_no,level,:,:) = Main(chan_no,level,:,:) + S_avg ;
你必须先重塑矩阵S_avg,在这里试试这个
Main(chan_no,level,:,:) = Main(chan_no,level,:,:) + reshape(S_avg, 1, 1, size(S_avg, 1), size(S_avg, 2)) ;
或者如果你确定S_平均值的大小
Main(chan_no,level,:,:) = Main(chan_no,level,:,:) + reshape(S_avg, 1, 1, 45, 14) ;
您可以使用
挤压
删除单个维度
请使用此代码
Main(chan_no,level,:,:) = squeeze(Main(chan_no,level,:,:)) + S_avg ;
原因是,
size(Main(chan_no,level,:,:)) = 1 1 45 14
而
size(S_avg) = 45 14
因此会出现尺寸不匹配错误