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

  • 相关阅读:
    虚拟机中对centOS7.4配置静态ip
    mybatis使用中出现的错误!
    http中get和post方法区别
    java中堆和栈的区别
    struts2工作流程
    springmvc工作流程
    JDBC访问数据库流程
    并行程序设计模式-Master-Worker模式-Guarded Suspension模式-不变模式-生产者-消费者模式的理解
    Future模式个人理解
    分布式系统一致性问题和Raft一致性算法
  • 原文地址:https://www.cnblogs.com/bovine/p/2222788.html
Copyright © 2011-2022 走看看