我有一个数据集,希望能够存储并在Octave中加载
18.0 8 307.0 130.0 3504. 12.0 70 1 "chevrolet chevelle malibu"
15.0 8 350.0 165.0 3693. 11.5 70 1 "buick skylark 320"
18.0 8 318.0 150.0 3436. 11.0 70 1 "plymouth satellite"
16.0 8 304.0 150.0 3433. 12.0 70 1 "amc rebel sst"
17.0 8 302.0 140.0 3449. 10.5 70 1 "ford torino"
15.0 8 429.0 198.0 4341. 10.0 70 1 "ford galaxie 500"
14.0 8 454.0 220.0 4354. 9.0 70 1 "chevrolet impala"
14.0 8 440.0 215.0 4312. 8.5 70 1 "plymouth fury iii"
14.0 8 455.0 225.0 4425. 10.0 70 1 "pontiac catalina"
15.0 8 390.0 190.0 3850. 8.5 70 1 "amc ambassador dpl"
当我尝试使用时,它不会立即起作用:
data = load('auto.txt')
有没有一种方法可以按照给定格式从文本文件中加载数据,或者我需要将其转换为其他格式?
18.0,8,307.0,130.0,3504.0,12.0,70,1
...
编辑: 删除最后一行并修复'half'(一半)数字,例如3504. -> 3504.0 然后使用:
data = load('-ascii','autocleaned.txt');
在Octave中,将数据按照要求加载到一个矩阵中。
fscanf
解码该行。实际上,您将使用相同的记录说明符(在 C 或 Fortran 中)或fprintf
来读取它。 - hpauljPython
的csv
和numpy
模块将其加载,然后通过.mat
文件将其传输到Octave
。结果是一个1x10结构数组
,其中有9个字段-8个数字和1个字符串。如果您愿意,我可以将其发布为答案。 - hpauljdlmread
、csvread
、fileread
、textread
、textscan
。除了dlmread
之外,所有这些函数都是解释型的,并且可以使用type
进行读取。 - hpaulj