1

这是我在这里的第一篇文章,所以请多多包涵:-)。

问题背景:我有多个表单的文本文件:

<ticker>,<date>,<open>,<high>,<low>,<close>,<vol>
A,20120904 0926,37.14,37.14,37.14,37.14,693
.
.
.
ZZ,20120904 1602,1.6,1.6,1.6,1.6,11771

正如您可能已经猜到的那样,它是股票价格。当我将它加载到 matlab 时,它会创建一个结构,其中包含一个数组(数值)和一个单元格(用于字符串),此时我可以使用它。问题:

我想找到在数组中搜索特定符号(~70K 行)的最有效方法。虽然进行简单或减半搜索很容易,但我认为这些方法对于提取给定符号/字符串的开始和结束索引的多个文件和/或多个搜索不是很有用。我在这里查看了过去的帖子并阅读了有关 Rabin-Karp、Bitap 和哈希表的信息,但我不确定它们中的任何一个都能完全满足我的需求。

到目前为止,我倾向于通过单元格运行一次并为每个字母(即“A”、“B”等)创建一个哈希表,然后运行一个简单的搜索或您可能建议的任何其他内容:-)。散列的原因是我可能使用同一个文件来查找不同的股票代码,所以我认为运行一次并标记字母从长远来看会降低复杂性。

你对此事有何看法?我在正确的方向吗?我正在使用matlab顺便说一句。

谢谢

4

1 回答 1

0

您可以将所有代码存储在结构数组中。每列都是一个属性。假设您有非空值,您可以执行以下操作,

tickers = [S.tickers];
dates = [S.date];

您可以轻松地进行查询以从结构数组 S 中获取所需的索引。您可以通过创建以股票名称作为键的索引来进一步按股票名称索引股票代码。

于 2015-01-08T21:41:08.143 回答