首页 > 解决方案 > 如何在 Matlab 中为不断连接的数组预分配内存?

问题描述

我想使用SingalN创建一个大小为 50x510 的汉克尔矩阵(对于下面给出的示例片段),它是一个大小为N的正弦数据。Hankel 矩阵由SignalN的前 100 个元素创建,然后接下来的 100 个元素与先前创建的 Hankel 矩阵水平连接,依此类推,直到d=9。由于矩阵不断变化的大小,我怎样才能在这里分配内存,有没有更好的方法来做到这一点是 MATLAB?

L = 50; 
N = 1000;
D = 10;
M = (N/D)-L+1;
H_global  = zeros(L,M*D);
for d = 0:D-1
    temp = 100*d;
    H = hankel(SignalN(temp+1:temp+L),SignalN(temp+L:100*(d+1)));
    if d == 0
        H_global = H;
    else
        H_global = horzcat(H_global,H);
    end
end

标签: matlabconcatenationsignal-processingdynamic-memory-allocation

解决方案


推荐阅读