Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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
Matlab 矩阵中的移位数据_Matlab_Matrix_Lag_Shift - Fatal编程技术网

Matlab 矩阵中的移位数据

Matlab 矩阵中的移位数据,matlab,matrix,lag,shift,Matlab,Matrix,Lag,Shift,我想在nx12维的矩阵中重新排列数据,其中n是年,12是月 我的目标是生成一个新的矩阵 旧矩阵: 4 11 5 4 5 6 7 Nan 9 10 11 7 13 14 15 5 17 4 19 20 21 22 23 24 新矩阵,第1版: Nan Nan 4 11 5 4 5 6 7 Nan 9 10 11 7 13 14 15 5 17 4 19 20 21 22

我想在nx12维的矩阵中重新排列数据,其中n是年,12是月

我的目标是生成一个新的矩阵

旧矩阵:

4   11  5   4   5   6   7   Nan 9   10  11  7 
13  14  15  5   17  4   19  20  21  22  23  24
新矩阵,第1版:

Nan Nan 4   11   5   4   5   6   7   Nan 9   10  
11  7   13  14   15  5   17  4   19  20  21  22
新矩阵,第2版:

4   5   6   7   Nan 9   10  11  7   13  14  15
5   17  4   19  20  21  22  Nan Nan Nan Nan Nan
我想在时间上有前进和后退的选择

我非常感谢你的帮助。
提前谢谢。

我理解您提出的解决方案,但我仍然有一个问题。我向你们展示了我的尝试,它只是为了三个月的时间差,这就是我的“测试”滞后

将向量重塑为矩阵时,脚本失败。你能帮我吗?
很抱歉将此作为答案发布,但我无法处理在注释中正确发布代码。

您尝试了哪些方法?你的尝试哪里出错了?我想使用lagmatrix函数,但它需要安装一个工具箱,这不是免费的。然后我找到了circshift和timeshift,但我不知道如何正确地应用它。您可以使用
circshift
,但您必须将2d数组转换为1d向量shift,然后将NaN放置在正确的位置。不过,使用数组索引也可以完成同样的任务。当然,最后还必须将数据重塑为二维数组。但如果我要做大量的移位,我可能只会将数据存储为列向量,并在必要时对其进行重塑。这有帮助吗?你们应该用新的信息编辑你们的原始问题,而不是把它作为答案发布。为了回答你眼前的问题,你需要一个长度可以被12整除的向量,向它添加3个元素,然后再尝试将元素分成12个一组,这是行不通的。尝试
test=[nan;nan;nan;ind_-vec(1:end-3)]
ind=Stmp.data(:,2:end);
inv_ind=ind';  
ind_vec=inv_ind(:); 
shift_month = 3;  
if shift_month == 3;  
test=[nan; nan; nan; ind_vec];  
TEST=reshape(test, 12, [])  
end