在Matlab中显示有理数

Alm*_*ico 1 matlab

我有两个整数m,n,它们一起形成m/n形式的有理数.现在我只想以这种理性的形式在Matlab中显示它们.

我可以做到这一点

char(sym(m/n))
Run Code Online (Sandbox Code Playgroud)

所以,如果,例如m = 1,n = 2,MATLAB将显示1/2.但是,如果m = 2,n = 4我也在1/2,而我想得到2/4.

任何这样做的方式,而不会再发生类似的事情

fprintf( '%d/%d', m, n )
Run Code Online (Sandbox Code Playgroud)

谢谢

Moh*_*nia 5

您可以将显示格式更改为 rat

>> format rat
>> 2/3
ans =
       2/3
Run Code Online (Sandbox Code Playgroud)

否则你可以调用rats函数

>> rats(2/3)
ans =
      2/3     
>> class(ans)
ans =
char
Run Code Online (Sandbox Code Playgroud)

但是,在这两种情况下,馏分都会减少.为避免这种情况,您应该创建单独的函数或将其作为匿名函数引入

>> rat2 = @(m,n) num2str([m n], '%d/%d')
rat2 = 
    @(m,n)num2str([m,n],'%d/%d')
>> rat2(2,4)
ans =
2/4
Run Code Online (Sandbox Code Playgroud)