在同一列中读取具有混合数据类型的文件

时间:2015-03-30 12:30:51

标签: octave file-handling

我必须使用八度音程读取文件,其格式如下

0 0.232 0.565
2 0.232 name1
1 0.2314 0.2546
3 0.2455
4 0.2544 name2

基本上第三列可以是字符串或浮点数,而第一列是整数,第二列是浮点数。

我发现了一个类似的问题here,要求我安装一个包。我想避免安装新包。有没有使用内置函数的解决方案?

1 个答案:

答案 0 :(得分:1)

是的,您可以将其作为字符串读取,然后使用str2double函数进行转换。如果它不是数字,它将返回NaN。但是,您无法在同一向量中存储数字和字符串,因为它们的类型不同。

一种可能的解决方案是将最后一个向量分成两个新向量,一个包含字符串,在其中设置空字符串,其中有一个数字;另一个包含数字的向量,零或NaN,其中有一个字符串。

参考:str2double