Time series, months and sequence
1 次查看(过去 30 天)
显示 更早的评论
Hi everyone,
I have 12 series:
x1 = [1990M1, 1991M1, 1992M1 .....2020M1]
x2=[1990M2, 1991M2, 1992M2 ...2020M2]
...
x12=[1990M12, 1991M12, 1992M12 ...2020M12]
Now I would like a time sereis:
x= [1990M1, 1990M2, 1990M3 ...2020M12].
Please give me a hint.
Many thanks,
Bao
2 个评论
Mehmed Saad
2020-4-17
if they are of same length just put
y = [x1;x2;x3;x4;x5;x6;x7;x8;x9;x10;x11;x12];
x = y(:,1);
采纳的回答
Ameer Hamza
2020-4-17
编辑:Ameer Hamza
2020-4-18
First, you should avoid creating variables names like x1, x2, ..., xn. This thread explains the issues with this approach in detail: https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval
Now, if you want to correct this issue by combining all these values in a single array, then you can use eval(). Note that using frequently using eval() in your code is not a very good idea and should be avoided, but you can use it once to fix the initial mistakes. This code shows an example.
x1 = [1 2 3];
x2 = [4 5 6];
x3 = [7 8 9];
x4 = [10 11 12];
x5 = [13 14 15];
x = [];
for i=1:5 % numbers of the x variables
eval(['x = [x; x' num2str(i) '];']);
end
x = x(:)';
3 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!