将元素添加到MATLAB中的2D时间序列中



我有一个非常简单的问题,但我想知道是否有一种更简单的方法来解决它(它们必须是)。

我的矩阵为10 x 10,包含双重。我需要与这些数据点创建时间意甲。

我这样做的方式如下。我创建了一个3D数组,其时间为时间。每天,我每天通过将时间维度提高一个。

将新数据添加。

这是代码:

    TS_updated = zeros(size(TS_Current)+[0,0,1]);
    TS_updated(:,:,1:end-1) = TS_Current;
    TS_updated(:,:,end) = TS_New;

其中ts_current是代表时间和TS_NEW时间的现有3D数组是今天的新数据,我需要添加到时间序列中。

是否有更快地附加最后一个元素的方法,例如2D表:

TS_updated = [TS_Current;TS_New];

,甚至可能是储存时间意甲的更聪明的方法?

您也可以使用

TS(:,:,end+1) = TS_new;

,如果您打算每天不超过一次延长系列,则可能还需要预先分配。达到该限制后,您可以从任何长度和双重空间开始。

没有明显更好地安排我可以看到的数据的方法。您可以将其弄平为100 xtime而不是10x10xtime,但这取决于它是否会有所帮助。

在第三维中使用cat函数(文档):

TS_updated = cat(3, TS_Current, TS_New);

您可以使用

首先检查错误检查
% Check dimensions 1 and 2 are consistent first
if size(TS_Current,1) == size(TS_New,1) && size(TS_Current,2) == size(TS_New,2) 
    % Now concatenate
    TS_updated = cat(2, TS_Current, TS_New);
else
    error('New time series has incorrect dimensions')
end

您想在第三维中加入?

A=ones(3,3,2)
B=rand(3,3);
C=cat(3,A,B)

最新更新