GNU Octave:使用textscan()函数读取由点(。)

时间:2018-03-02 18:42:37

标签: octave textscan

我正在尝试使用textscan(...)函数从DAY.MONTH.YEAR格式的日期文件中读取数据。以下是该问题的简单说明。

这不能按预期工作:

    u = textscan ('5.2.1975','%d.%d.%d')
    u = 
    {
      [1,1] = 5
      [1,2] = 1975
      [1,3] = 0
    }

似乎文本可以将5.2部分视为十进制数并将其舍入为5.它返回最后一个数字(1975)作为u的第二个元素。

如果分隔符不是点,则转换按预期工作:

    u = textscan ('5*2*1975','%d*%d*%d')
    u = 
    {
      [1,1] = 5
      [1,2] = 2
      [1,3] = 1975
    }

我需要更改什么才能使其与点一起使用?

1 个答案:

答案 0 :(得分:0)

以下是我在Octave 4.0.3中观察到的内容:

>>  u = textscan ('5.2.1975','%d.%d.%d')
u =
{
  [1,1] = 5
  [1,2] = 2
  [1,3] = 1975
}

原则上,似乎textscan完全符合您的预期。

如果您看到不同的结果:

  • 在较旧的Octave版本中,您应该升级您的Octave版本并再次检查;
  • 在最近的版本中,您应该将此报告为Octave bug tracker
  • 上的错误