我有一个非常简单的问题,但我想知道是否有一种更简单的方法来解决它(它们必须是)。
我的矩阵为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)