Calling .csv file into Octave

杀马特。学长 韩版系。学妹 提交于 2019-12-03 12:03:06

Using octave 3.8.2

>> format long g
>> dlmread ('test.csv',' ',2,0)
ans =

                     0                     0                     0                   -20               70668.2
                     0                     0                     0                   -19                 65875
                     0                     0                     0                   -18               61411.9
                     0                     0                     0                   -17               57256.4

General, use dlmread if your value separator is not a comma. Furthermore, you have to skip the two headlines. Theoretical dlmread works with tab separated values too '\t', but this failes with you given example, because of the discontinuous tab size (maybe it's just a copy paste problem), so taking one space ' ' as separator is a workaround. you should better save your .csv file comma separated

Wavelength= 88.7927 m
Time    Height  Force(KN/m)
0, -20, 70668.2
0, -19, 65875
0, -18, 61411.9
0, -17, 57256.4

Then you can easily do dlmread('file.csv',',',2,0).

You can try my csv2cell(not to be confused with csv2cell from io package!) function (never tried it < 3.8.0).

>> str2double(reshape(csv2cell('test.csv', ' +',2),3,4))'
ans =

                 0                   -20               70668.2
                 0                   -19                 65875
                 0                   -18               61411.9
                 0                   -17               57256.4

Usually it reshaped successful automatically, but in case of space seperators, it often failed, so you have to reshape it by your self (and convert to double in any case).

And when you need your headline

>> reshape(csv2cell('test.csv', ' +',1),3,5)'
ans =
{
  [1,1] = Time
  [2,1] = +0
  [3,1] = +0
  [4,1] = +0
  [5,1] = +0
  [1,2] = Height
  [2,2] = -20
  [3,2] = -19
  [4,2] = -18
  [5,2] = -17
  [1,3] = Force(KN/m)
  [2,3] = 70668.2
  [3,3] = 65875
  [4,3] = 61411.9
  [5,3] = 57256.4
}

But take care, then everything is a string in your cell.

FrozenMonkey

Your not storing you .csv filename as a string. Try:

filename = 'linear_wave_loading.csv';
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!