以下代码
x = [1.1, 2.22, -3.3; 4.44, 5.55, 6.6]; fmt = '%.16g '; y = num2str(x, fmt)
在Matlab中产生不同的结果(R20105b)
y = 1.1 2.22 -3.3 4.44 5.55 6.6
在Octave(4.0.0)
y = 1.1 2.22 -3.3 4.44 5.55 6.6
不同之处在于对齐:在Matlab中,列是右对齐的,而在Octave中,它们没有对齐.
我想在Octave中完全实现Matlab的行为.你知道任何解决方案吗?当然我可以编写自己的函数,但也许已经存在一个解决方案.
编辑
另一个区别是如何处理多维数组.例如,
x = cat(3, magic(3), -magic(3)); fmt = '%.16g '; y = num2str(x, fmt)
在Matlab中生成
y = 8 1 6 -8 -1 -6 3 5 7 -3 -5 -7 4 9 2 -4 -9 -2
在Octave
y = 8 1 6 3 5 7 4 9 2 -8 -1 -6 -3 -5 -7 -4 -9 -2
也就是说,Matlab沿着第二维度附加3D切片,沿着第一维度附加八度切片.