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的问题。这是为什么呢?

  • 相关阅读:
    vue 父子传值 子组件修改父组件的值
    高德 定位到所在城市
    地图 JS API v2. vue 海量点标记
    vue-amap的使用
    react 和 vue 的比较
    接口自动化之pytest(3)——用例执行顺序插件pytest_ordering
    接口自动化之pytest(2)——用例设计原则及执行顺序
    接口自动化之pytest(1)——pytest相对unittest的优势
    python 装饰器(一)
    python 异常捕获、抛出异常
  • 原文地址:https://www.cnblogs.com/bovine/p/2222788.html
Copyright © 2011-2022 走看看