【问题标题】:What does the value NaN4505e-001 mean in Octave/matlab? [closed]在 Octave/matlab 中 NaN4505e-001 的值是什么意思? [关闭]
【发布时间】:2015-05-27 12:51:27
【问题描述】:

在 Octave/matlab 中,NaN4505e-001 的值是什么意思?

完整的输出行是Iteration 250 | Cost: NaN9784e-001 库函数中对应的语句为fprintf('%s %4i | Cost: %4.6e\r', S, i, f1);

所以,我的问题是%4.6e 如何返回此值NaN4505e-001?

【问题讨论】:

  • 你能解释一下你是怎么得到这个值的吗?

标签: matlab octave


【解决方案1】:

最有可能是三个字符串的连接是由显示一个NaN 和两个浮点数产生的。例如:

fprintf(1, '%d%d%.0e\n', NaN, 450, 0.5)

后期编辑:鉴于添加到原始问题的新信息,最可能的原因是 f1 变量是双精度的 3 元素向量,其值为 [NaN, 450, 0.5],或 2元素向量[NaN, 450.5].

要查看究竟是什么原因,我建议在 fprintf 调用上添加条件断点,条件为 i == 250,然后检查 f1 值。

但是,i 和 j 被 MATLAB 保留用于 -1 的复平方根,因此调试器可能永远不会采用该条件。这就是为什么使用这两个标识符作为变量名是一个坏主意的原因。

【讨论】:

  • 同意。 +1。这是最有可能的罪魁祸首。
  • 我已经澄清了这个问题.. 该值似乎来自单个 %4.6e 格式指令
  • @TG_ 在答案中添加了信息。
猜你喜欢
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 2010-12-29
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-29
相关资源
最近更新 更多