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

时间:2015-05-27 06:15:45

标签: arrays matlab

我有一个大型的64x4x45x14维数。

我将其初始化为全零:

$(function() {
    $('#dataTables-example tbody').on('click', 'tr', function() {
        var name = $('td', this).eq(0).text();
        $('#btnDeleteRow').click(function(e) {
            alert('You are going to delete ' + name + '\'s row');
        });
    });
});

我有另一个维度为45x14的数组S_avg;

如果我这样做,为什么Matlab会出错?

Main = zeros(64,4,45,14);

2 个答案:

答案 0 :(得分:1)

您可以使用squeeze删除单身尺寸。

请改用此代码,

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

因此您会收到尺寸不匹配错误

答案 1 :(得分:0)

你必须首先重塑矩阵S_avg,在这里试试

Main(chan_no,level,:,:) = Main(chan_no,level,:,:) + reshape(S_avg, 1, 1, size(S_avg, 1), size(S_avg, 2)) ;

或者如果您确定知道S_avg的大小

Main(chan_no,level,:,:) = Main(chan_no,level,:,:) + reshape(S_avg, 1, 1, 45, 14) ;