jot*_*cas 2 csv matlab octave textscan
我有一个包含20列的CSV文件。一些列具有数字值,其他列具有文本值,而文本列可能包含或可能不包含逗号。
CSV内容示例:
column1, column2, column3, column4
"text value 1", 123, "text, with a comma", 25
"another, comma", 456, "other text", 78
Run Code Online (Sandbox Code Playgroud)
我正在使用textscan函数,但是却遇到了最多的错误和奇怪的行为。使用一些参数,它只读取一列中的所有值,某些情况下,它会重复列,并且我尝试过的大多数操作都导致逗号被错误地解释为列分隔符(尽管文本用双引号引起来)。也就是说,我尝试指定'delimiter'参数,并且还包括格式规范中的文字,无济于事。
textscan如上例所示,调用处理CSV文件的正确方法是什么?我正在寻找一种既可以在MATLAB上又可以在Octave上运行的解决方案(或者,如果不可能的话,可以在每个解决方案中都使用等效的解决方案)。
对于GNU Octave,使用io包
pkg load io
c = csv2cell ("jota.csv")
Run Code Online (Sandbox Code Playgroud)
给
c =
{
[1,1] = column1
[2,1] = text value 1
[3,1] = another, comma
[1,2] = column2
[2,2] = 123
[3,2] = 456
[1,3] = column3
[2,3] = text, with a comma
[3,3] = other text
[1,4] = column4
[2,4] = 25
[3,4] = 78
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您应该明确提及该解决方案是否应在GNU Octave,Matlab或两者上运行