Octave - 将 CSV 导入文件中的数字字符串转换为数字矩阵
Octave - Convert number-strings from CSV import file to numerical matrix
我正在编写代码以从 CSV 文件导入数据并将其转换为 Octave 矩阵。导入的数据可以在下面的快照中看到:
在下一步中,我添加了以下命令来删除逗号和“”:
meas_raw_temp = strrep(meas_raw_temp,',',' ')
然后我得到如下形式的数据格式:
问题是 Octave 仍然将数据视为 1 个单一的一维数组。即,当我使用 size 命令时,我得到一个数字,即 2647。我需要的是一个矩阵输出,快照的每一行都是矩阵的一行,并且每个元素都是分开的。
有什么想法吗?
这是正在发生的事情。
您有一个一维(仅行)单元格 数组。元胞数组中的每个元素(即元胞)都包含一个 string.
您的字符串中包含逗号和文字双引号。你已经设法通过用 'empty string' 替换它们来摆脱它们。好的。然而,这并没有改变每个单元格仍然有一个字符串的事实。
您需要创建一个 for 循环来分别处理每个单元格。对于每个单元格,使用 ' '
(即 space)作为分隔符将字符串拆分为其组件(即 'tokens')。您可以适当地使用 strsplit
或 strtok
来实现这一点。请注意,您从这个过程中得到的 'tokens' 仍然是 'string' 类型。如果你想要数字,你需要转换它们(例如使用 str2double
或类似的东西)。
对于您处理的每个单元格,找到一种方法来填充预分配矩阵的相应行。
正如 Adriaan 在评论中指出的那样,您以编程方式执行上述步骤的确切方式可能会有所不同,因此我不会提供您可以执行的可能方式的范围所以,我将这个问题的答案限制在上面的步骤中,这就是你应该如何考虑解决你的问题。
如果您尝试这些步骤并卡在实施的 'programmatic' 方面,请随时提出另一个 Whosebug 问题。
我正在编写代码以从 CSV 文件导入数据并将其转换为 Octave 矩阵。导入的数据可以在下面的快照中看到:
在下一步中,我添加了以下命令来删除逗号和“”:
meas_raw_temp = strrep(meas_raw_temp,',',' ')
然后我得到如下形式的数据格式:
问题是 Octave 仍然将数据视为 1 个单一的一维数组。即,当我使用 size 命令时,我得到一个数字,即 2647。我需要的是一个矩阵输出,快照的每一行都是矩阵的一行,并且每个元素都是分开的。
有什么想法吗?
这是正在发生的事情。
您有一个一维(仅行)单元格 数组。元胞数组中的每个元素(即元胞)都包含一个 string.
您的字符串中包含逗号和文字双引号。你已经设法通过用 'empty string' 替换它们来摆脱它们。好的。然而,这并没有改变每个单元格仍然有一个字符串的事实。
您需要创建一个 for 循环来分别处理每个单元格。对于每个单元格,使用
' '
(即 space)作为分隔符将字符串拆分为其组件(即 'tokens')。您可以适当地使用strsplit
或strtok
来实现这一点。请注意,您从这个过程中得到的 'tokens' 仍然是 'string' 类型。如果你想要数字,你需要转换它们(例如使用str2double
或类似的东西)。对于您处理的每个单元格,找到一种方法来填充预分配矩阵的相应行。
正如 Adriaan 在评论中指出的那样,您以编程方式执行上述步骤的确切方式可能会有所不同,因此我不会提供您可以执行的可能方式的范围所以,我将这个问题的答案限制在上面的步骤中,这就是你应该如何考虑解决你的问题。
如果您尝试这些步骤并卡在实施的 'programmatic' 方面,请随时提出另一个 Whosebug 问题。