当前位置:  开发笔记 > 编程语言 > 正文

在Octave中实现Matlab的`num2str`行为

如何解决《在Octave中实现Matlab的`num2str`行为》经验,为你挑选了0个好方法。

以下代码

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切片,沿着第一维度附加八度切片.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有