zoukankan      html  css  js  c++  java
  • MATLAB的分数和小数

    今天在使用MATLAB的过程中遇见一个诡异的问题。

    首先我定义一个矩阵a。

    >> a = [2 0 5 6;1 3 3 6;-1 1 2 1;1 0 1 3 ]

    a =

         2     0     5     6
         1     3     3     6
        -1     1     2     1
         1     0     1     3

    然后求逆。

    >> b = inv(a)

    b =

        0.4444    0.3333   -1.0000   -1.2222
        0.0370    0.4444   -0.3333   -0.8519
        0.3333         0         0   -0.6667
       -0.2593   -0.1111    0.3333    0.9630

    注意到结果是小数,我想让结果是分数。上网得知命令rats可以实现这个功能。

    >> c = rats(b)

    c =

          4/9           1/3           -1          -11/9    
          1/27          4/9          -1/3         -23/27   
          1/3            0             0           -2/3    
         -7/27         -1/9           1/3          26/27   

    函数很好地实现了这个功能。但是诡异的事情出现了。查看原矩阵a和求逆转换后矩阵c的size,我们发现

    >> size(a)

    ans =

         4    4

    >> size(c)

    ans =

         4    56

    c明明看上去是一个4*4的矩阵,为什么会出现这样的情况呢?我首先没有考虑这个问题的成因。而是先使用了另外一种方法解决该问题。

    在开始运算前输入命令

    >> format rat

    这样一来接下来的运算会默认采用分数的方式表示答案。通过这种方法得到的逆矩阵没有出现上文提到过的size的问题。这是为什么呢?

  • 相关阅读:
    day10 基本数据类型(下)
    day09 作业
    day09 基本数据类型(中)
    day08 作业
    day8 for循环+基本数据类型(上)
    Python正课109 —— 前端 进阶8
    Python正课108 —— 前端 进阶7
    Python正课107 —— 前端 进阶6
    Python正课106 —— 前端 进阶 5
    Python正课105 —— 前端 进阶4
  • 原文地址:https://www.cnblogs.com/bovine/p/2222788.html
Copyright © 2011-2022 走看看