簡體   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