【发布时间】:2016-02-20 14:37:47
【问题描述】:
我从 mysql 中将下表读入 matlab 元胞数组:
Nyse = fetch(conn,'SELECT ticker,date,utcsec,bid,ofr FROM HFE.Quotes where ex="N" order by utcsec,bid;');
Nyse 元胞数组包含 1000000 行。我想计算每秒的中位出价,其中第二个被记录为 utcsec 列中的字符串。我这样做是通过以下方式:
utcsec=cell2mat(Nyse(:,3));
bid=cell2mat(Nyse(:,4));
NyseBid=grpstats(bid,utcsec,{'median'});
问题在于函数 grpstats 需要大约 70 秒才能完成任务。问题是,如何优化代码以使其运行得更快?
UTCSEC 列中的示例字符串是“09:30:00”。
【问题讨论】:
-
一百万行并不是一个微不足道的数据量。是只需要中位数还是需要
grpstats计算的其他信息? -
我不确定我是否完全遵循数据。
utcsec和bid的维度和数据类型是什么?utcsec只是一个时间向量吗? -
utcsec 是一个包含字符串的向量,格式如下:'09:30:00'、'09:30:00'、'09:30:01' 等等
-
bid怎么样?是utcsecmonotonic? -
bid 是数字 2.3、2.4、4.5、4.6 等的向量。我猜 utcsec 是单调的。 utcsec 正在增加
标签: mysql matlab optimization median