值NaN4505e-001
在Octave / matlab中的含义是什么?
完整输出行为Iteration 250 | Cost: NaN9784e-001
库函数中的相应语句是fprintf('%s %4i | Cost: %4.6e\r', S, i, f1);
所以,我的问题是%4.6e
如何返回此值NaN4505e-001
?
答案 0 :(得分:4)
最有可能的是由于显示NaN
和两个浮点数而产生的三个字符串的串联。例如:
fprintf(1, '%d%d%.0e\n', NaN, 450, 0.5)
稍后修改:鉴于新信息已添加到原始问题中,最可能的原因是f1
变量是双元素的3元素向量,其值为{{1} },或2元素向量[NaN, 450, 0.5]
。
要了解究竟是什么原因,我建议在条件[NaN, 450.5]
的{{1}}调用中添加条件断点,然后检查fprintf
值。
但是,i == 250
和f1
由MATLAB保留为-1的复数平方根,因此调试器可能永远不会采用该条件。这就是为什么将这两个标识符用作变量名称是个坏主意。