在不计算值的情况下进行除法时的 Octave 显示分数

Ale*_*kis 2 matlab matrix linear-algebra octave

1/23 * [1 2 3] 的计算给了我 [0.041667 0.083333 0.125000]。

我只想要像 [1/23 2/23 3/23] 这样的结果

Tas*_*nou 8

您可以指定format rat, 以始终将输出显示为有理近似值(适用于 matlab 和八度)。

format rat
a = 1/23 * [1,2,3]
% a = 1/23       2/23       3/23
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用“rat”或“rats”函数来打印(作为字符串)浮点数组的有理近似:

a = 1/23 * [1,2,3]
% a =    0.043478   0.086957   0.130435

rats(a)
% ans =  1/23       2/23       3/23
Run Code Online (Sandbox Code Playgroud)

正如 Cris 在评论中指出的那样,这只是一个代表性问题。结果的基础浮点表示不会改变。如果您希望在“数学”意义上使用分数,那么您需要以不同的方式进行处理(可能是符号包,或手动处理分子和分母)。