我在Windows上使用Octave 4.0.0,并且在从互联网上下载的文本数据上使用textscan
时遇到问题。这些数据在互联网上具有以下格式:
quote_date;paper;exch;open;high;low;close;volume;value
20150605;OTS;Oslo Børs;5.88;5.88;5.88;5.88;5000;29400
20150604;OTS;Oslo Børs;5.50;5.50;5.50;5.50;3728;20504
20150603;OTS;Oslo Børs;5.69;5.70;5.69;5.70;1000;5694
20150601;OTS;Oslo Børs;5.40;5.73;5.30;5.73;4575;24633
20150529;OTS;Oslo Børs;5.40;5.40;5.39;5.40;20197;109033
我不太了解原始数据集中的行尾charachter是什么,但当我将它们复制并粘贴到记事本+'行尾字符是CR,LF。
下面我使用urlread
将网址a
中的数据读入字符串x
:
a = 'http://www.netfonds.no/quotes/paperhistory.php?paper=OTS.OSE&csv_format=sdv';
x = urlread(a);
然后我想使用textscan
将字符串x
转换为带有标题字符串的向量和每个标题字符串的数据向量。
转换为带有标题字符串的向量顺利
h = textscan(x,['%s %s %s %s %s %s %s %s %s'],1,'delimiter',';');
这会产生一个包含九个标题文本字符串的单元格数组,如我所愿。但是,当尝试使用以下代码读取其余数据(跳过第一个标题行)时:
y = textscan(x,'%d %s %s %f %f %f %f %d %d','headerlines',1,'delimiter',';');
我从Octave得到这个警告:
>> y = textscan(x,'%d %s %s %f %f %f %f %d %d','headerlines',1,'delimiter',';');
warning: textscan: 'headerlines' ignored when reading from strings
warning: called from
textscan at line 181 column 7
warning: strread: unknown property 'headerlines'
因此textscan
无法理解headerlines
。无论我是写headerlines
,Headerlines
还是HeaderLines
。
为什么不textscan
了解属性headerlines
,甚至认为此属性是在textscan
帮助菜单中定义的?