【发布时间】:2015-11-23 18:19:35
【问题描述】:
我想读取 csv 文件中选定的字符串数据列,其中列的总数因行而异。假设csv文件的内容如下:
line 1: a1,b1,c1,d1,e1
line 2: a2,b2,c2
line 3: a3,b3,c3,d3
我想将第一列读入变量 a,第二列读入变量 b,期望 a 和 b 具有以下值:
a[1,1] = a1, a[2,1] = a2, a[3,1] = a3
b[1,1] = b1, b[2,1] = b2, b[3,1] = b3
我尝试使用 textread 与格式说明符只匹配所需的列:
[a,b] = textread('SampleFile.csv','%s%s','delimiter',',')
但这会产生错误的结果:
a[1,1] = a1, a[2,1] = c1, a[3,1] = e1, a[4,1] = b2, a[5,1] = b3, a[6,1] = d3
b[1,1] = b2, b[2,1] = d1, b[3,1] = a2, b[4,1] = a3, b[5,1] = c3, b[6,1] =
我还尝试使用带有格式说明符的 textread 匹配最大列数,并为不需要的列使用虚拟变量:
[a,b,dummy1,dummy2,dummy3] = textread('SampleFile.csv','%s%s%s%s%s','delimiter',',')
但这也产生了错误的结果:
a[1,1] = a1, a[2,1] = a2, a[3,1] = d3
b[1,1] = b2, b[2,1] = b2, b[3,1] =
有没有办法使用 textread 命令或其他方法仅捕获所需的列?
我在 Mac OS 10.9.5 上运行 Octave 3.8.0。
【问题讨论】:
标签: csv octave multiple-columns