概述
关于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无法相乘。
问题
- T1为3x3矩阵,inv()函数求逆后得到的矩阵结构是3x3的,但是matlab却认为是1x1的?
- size()计算m1的结果是否正确?
最后
以上就是阳光香菇为你收集整理的关于matlab中inv()和size()的请教inv()和size()函数问题的全部内容,希望文章能够帮你解决关于matlab中inv()和size()的请教inv()和size()函数问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复