如何停止在 Matlab 中将非常小的值赋予零?
How to stop giving very small value to zero in Matlab?
假设我有一个矩阵 M (3x3)
1.15740740740741e-17 1.15740740740741e-18 0.0100000000000000
1.15740740740741e-17 1.15740740740741e-18 1
1.15740740740741e-17 1.15740740740741e-18 0.1
如果我输出M(1,1:2),就是
ans =
1.0e-16 *
0.115740740740741 0.011574074074074
但是,如果我执行 M(1,1:3)
,前两列的值为零
ans =
0.000000000000000 0.000000000000000 0.010000000000000
不确定如何阻止这种情况发生。非常感谢您的帮助!
您需要使用 format
的 *G
版本,它允许显示格式自适应并使用最适合每个元素的格式。有两种变体
format shortG
% 1.1574e-17 1.1574e-18 0.01
% 1.1574e-17 1.1574e-18 1
% 1.1574e-17 1.1574e-18 0.1
或
format longG
% 1.15740740740741e-17 1.15740740740741e-18 0.01
% 1.15740740740741e-17 1.15740740740741e-18 1
% 1.15740740740741e-17 1.15740740740741e-18 0.1
假设我有一个矩阵 M (3x3)
1.15740740740741e-17 1.15740740740741e-18 0.0100000000000000
1.15740740740741e-17 1.15740740740741e-18 1
1.15740740740741e-17 1.15740740740741e-18 0.1
如果我输出M(1,1:2),就是
ans =
1.0e-16 *
0.115740740740741 0.011574074074074
但是,如果我执行 M(1,1:3)
,前两列的值为零ans =
0.000000000000000 0.000000000000000 0.010000000000000
不确定如何阻止这种情况发生。非常感谢您的帮助!
您需要使用 format
的 *G
版本,它允许显示格式自适应并使用最适合每个元素的格式。有两种变体
format shortG
% 1.1574e-17 1.1574e-18 0.01
% 1.1574e-17 1.1574e-18 1
% 1.1574e-17 1.1574e-18 0.1
或
format longG
% 1.15740740740741e-17 1.15740740740741e-18 0.01
% 1.15740740740741e-17 1.15740740740741e-18 1
% 1.15740740740741e-17 1.15740740740741e-18 0.1