繁体   English   中英

将带空格的csv文件读入Octave

[英]Reading a csv file with spaces into Octave

我有一些使用rostopic echo / foo> foo.csv写入到csv文件中的Pose Update rostopic数据

foo.csv看起来像:

%time,field
1539675906586600065,0.157465848996
1539675906587352037,0.160723703902
1539675906587656974,0.161057770877
1539675906587693929,0.161579636574

我正在尝试将其导入Octave进行进一步处理,但这并不是一个恒定的定界符,并且我对dlmread或dlmwrite没有任何运气。

我试过了

nsec = dlmread (nsecval,"\n",r1,c1)

 error: 'nsecval' undefined near line 1 column 17 error: evaluating argument list element number 1`

我需要:

  1. 忽略带有%time字段的第一行
  2. 仅取每行的第二部分,例如0.157465848996
  3. 将空格转换为dlmread或csvread可以使用的格式
  4. 将所有这些值转换为矩阵的列。

例如

0.157465848996
0.160723703902
0.161057770877
0.161579636574

总的来说,我真的很熟悉Octave和科学计算,并希望获得一些帮助。

如果您使用的是Linux,我建议使用sed进行小的预处理,以用空格替换所有逗号:

 sed  -i "s#,# #g"  your_file

如果您使用的是Windows或其他工具,则替换逗号同样应该很容易。 一旦有了这个,以八度为单位,只需使用

i=load("your_file"); 
vec=i(:,2);

使第二列成为列向量。

首先,尝试使用nsec = dlmread(nsecval,“ \\ n”,r1,c1)来解决问题:

八度错误告诉您它不知道什么是“ nsecval”。

接下来使用dlmread,该函数期望文件名,定界符值,起始行,起始列(从0开始),如下所示:

nsec = dlmread ("foo.csv", ",", 1, 1)

将获取您所需的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM