Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将较小的数组添加到较大数组的一部分?_Arrays_Matlab - Fatal编程技术网

Arrays 将较小的数组添加到较大数组的一部分?

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

我有一个尺寸为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,:,:) + 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
因此会出现尺寸不匹配错误