matlab編寫的函數,當傳輸參數爲矩陣時,運行總是出錯,跪求大神解釋

題目:

matlab編寫的函數,當傳輸參數爲矩陣時,運行總是出錯,跪求大神解釋
function xuanzhuanjuzhen=rotation3(xa,ya,za)
%計算三維空間以原點爲旋轉中心旋轉(xangle,yangle,zangel)角度,即先後繞x,y,z軸旋轉對應角度
%求旋轉(xangle,yangle,zangel)角度後的點的格式爲[x*,y*,z*]=xuanzhuanjizhen*[x,y,z];
z=[cos(za),-sin(za),0;sin(za),cos(za),0;0,0,1];
y=[cos(ya),0,-sin(ya);0,1,0;sin(ya),0,cos(ya)];
x=[1,0,0;0,cos(xa),-sin(xa);0,sin(xa),cos(xa)];
xuanzhuanjuzhen=x*y*z;
運行之後:
? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.

解答:

因爲你用矩陣拼接的方法構造x,y,z
例如對z,當傳入za是矩陣時,cos(za)是矩陣,但是後面的0和1都只是一個數,造成行列個數不匹配,無法形成矩陣
再問: 哦,那應該怎麼改呀?
再答: 你可以用size()獲得傳入矩陣的大小然後用zeros()或者ones()獲得相應長度的零矩陣和一矩陣,要是需要轉置就在後面加一個 』 就可以了

添加新評論

暱稱
郵箱
網站