我是靠谱客的博主 阳光香菇,最近开发中收集的这篇文章主要介绍关于matlab中inv()和size()的请教inv()和size()函数问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于matlab中inv()和size()的请教

inv()和size()函数问题

目前在学习matlab和移动机器人的知识,petercorke书中关于位姿论述中有一句代码“P1=inv(T1)x[P;1]”,在matlab上运行后报错:错误使用 * (line 323)
LHS should be matrix with 2 rows。经查找解决方案,网上给出“P1=doubel(inv(T1))*[P;1]”,运行后可以得出作者答案。

测试

>> m1=inv(T1)
 

m1 = 
    0.8660    0.5000    -1.866
   -0.5000    0.8660    -1.232
         0         0        1
>> m2=m1*[p;1]
错误使用  *  (line 323)
LHS should be matrix with 2 rows
>> m3=[p;1]

m3 =

     3
     2
     1
>> m4=m1*m3
    错误使用  *  (line 323)
    LHS should be matrix with 2 rows    
>> m5=double(m1)
    m5 =
    
        0.8660      0.5000        -1.8660
       -0.5000    0.8660          -1.2321
             0         0           1.0000

>> m4=m5*m3

m4 =

    1.7321
   -1.0000
    1.0000

从上面的测试代码中发现,inv()函数输出的m1与m5经浮点化后是不一样的。
因为错误提示是关于矩阵行数问题,我用size()函数查询了下m1和m5,结果如下:

>> size(m1)

ans =

     1     1

>> size(m5)

ans =

     3     3

最初问题的原因找到了,就是matlab认为m1是一个1x1的矩阵,m5为3x3的矩阵。所以m1与m3无法相乘。

问题

  1. T1为3x3矩阵,inv()函数求逆后得到的矩阵结构是3x3的,但是matlab却认为是1x1的?
  2. size()计算m1的结果是否正确?

最后

以上就是阳光香菇为你收集整理的关于matlab中inv()和size()的请教inv()和size()函数问题的全部内容,希望文章能够帮你解决关于matlab中inv()和size()的请教inv()和size()函数问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(90)

评论列表共有 0 条评论

立即
投稿
返回
顶部