排序的日期时间。
3视图(30天)
显示旧的评论
你好,
我有一个n * 3的数据。(整个美国股票数据)每个cloume日期是:股票id、日期、价格。
日期为每个股票在第二cloume重复id。
T1 P1a
一个T2 P2a
一个T3 P3a
一个T4 P4a
B T1 P1a
B T2 P2b
B T3 P3b
B T4 P4b
.... .... ....
我尽量安排数据,让第一cloume日期,行是股票id调情。
ID =独特(数据(:1))';
日期=独特(数据(:,2))
然后我没有理想如何编码。
需要的数据
A B C ...............
T1 P1a P1b P1c ...............
T2 P2a P2b P2c
T3 P3a P3b P3c
T4 P4a P4b P4c
我没有编程经验,尝试学习matlab。
谢谢你的时间
接受的答案
耻辱Parmar
2019年6月26日
编辑:耻辱Parmar
2019年6月27日
你好Haolun,这是逻辑. .
% Assumming输入数据是这样. .
%第一列是“ID”,第二列是“约会”,第三列是“价格”
inputData = [
11 21062019 1000
11 22062019 1500
11 23062019 2000
11 24062019 2500
22 21062019 3000
22 22062019 3500
22 23062019 4000
22 24062019 4500
33 21062019 5000
33 22062019 5500
33 23062019 6000
33 24062019 6500];
id =独特(inputData (: 1));
日期=独特(inputData (:, 2));
totalIDs =长度(IDs);
totalDates =长度(日期);
%逻辑创建输出数据
%第一项的输出将是空的
outputData {1} = [];
%这个FOR循环是第一行(行id)
为count1 = 1: totalIDs
outputData {1, count1 + 1} = id (count1);
结束
%这个FOR循环是第一列(列的日期)
为是从= 1:totalDates
outputData{是从+ 1,1}=日期(是从);
结束
%这个For循环的中间值
为count1 = 1: totalIDs
为是从= 1:totalDates
ID_val = id (count1);
Date_val =日期(是从);
ID_Column_Indices =找到(ismember (inputData (: 1), ID_val));
Date_Column_Indices =找到(ismember (inputData (:, 2), Date_val));
require_price_val = [];
为i = 1:长度(ID_Column_Indices)
为j = 1:长度(Date_Column_Indices)
如果ID_Column_Indices (i) = = Date_Column_Indices (j)
指数= ID_Column_Indices(我);
require_price_val = inputData(指数(3);
结束
结束
结束
outputData{是从+ 1,count1 + 1} = require_price_val;
结束
结束
inputData%显示输入数据
outputData%显示输出数据
%输出数据将显示. .
outputData =
[][11][22][33]
[21062019][1000][3000][5000]
[22062019][1500][3500][5500]
[23062019][2000][4000][6000]
[24062019][2500][4500][6500]
请参阅附加脚本并运行它,看看结果. .Thanksss……:)
更多的答案(2)
剪秋罗属植物龙
2019年6月27日
编辑:剪秋罗属植物龙
2019年6月27日
假设羞愧的数据格式,你CSV看起来像这样:
data.csv:
STOCK1210620191000年
STOCK1220620191500年
STOCK1230620192000年
STOCK1240620192500年
STOCK1210620193000年
STOCK2220620193500年
STOCK2230620194000年
STOCK2240620194500年
STOCK3210620195000年
STOCK3220620195500年
STOCK3230620196000年
STOCK3240620196500年
这是让你的数据到MATLAB的步骤,在你渴望的布局:
> >选择= detectImportOptions (“data.csv”);
%没有必要(自动检测)如果你的时间戳是更常见的时间格式
%。“21-06-2019”而不是“21062019”
> > opt.VariableTypes {2} =“datetime”;
> > opt.VariableOptions (2)。InputFormat =“ddMMyyyy”;
%给你时间戳更友好格式和变量有意义的名称
> > opt.VariableOptions (2)。DatetimeFormat =“dd-MMM-yyyy”;
> > opt.VariableNames = [“股票”“时间”“数据”];
%现在写入数据
> > tt = readtimetable (“data.csv”选择)
tt =
12×2的时间表
时间股票行情自动收录器数据
_______________________
截止2019年6月21日“STOCK1”1000年
截止2019年6月22日“STOCK1”1500年
截止2019年6月23日“STOCK1”2000年
截止2019年6月24日“STOCK1”2500年
截止2019年6月21日“STOCK2”3000年
截止2019年6月22日“STOCK2”3500年
截止2019年6月23日“STOCK2”4000年
截止2019年6月24日“STOCK2”4500年
截止2019年6月21日“STOCK3”5000年
截止2019年6月22日“STOCK3”5500年
截止2019年6月23日“STOCK3”6000年
截止2019年6月24日“STOCK3”6500年
% Unstack所需的布局
> > tt = unstack (tt,“数据”,“股票”)
tt =
4×3的时间表
时间STOCK1STOCK2STOCK3
_____________________________
21 - 6月2019 1000 3000 5000
22日- 5500年6月- 2019年1500年3500年
23日- 6000年6月- 2019年2000年4000年
24 - 6月2019 2500 4500 6500