matlab编写的函数,当传输参数为矩阵时,运行总是出错,跪求大神解释
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 04:12:07
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.
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()获得相应长度的零矩阵和一矩阵,要是需要转置就在后面加一个 ’ 就可以了
例如对z,当传入za是矩阵时,cos(za)是矩阵,但是后面的0和1都只是一个数,造成行列个数不匹配,无法形成矩阵
再问: 哦,那应该怎么改呀?
再答: 你可以用size()获得传入矩阵的大小然后用zeros()或者ones()获得相应长度的零矩阵和一矩阵,要是需要转置就在后面加一个 ’ 就可以了
matlab编写的函数,当传输参数为矩阵时,运行总是出错,跪求大神解释
matlab求最短路,运行dijkstra函数时出错
matlab函数传入多个矩阵参数时出错:矩阵大小不对应
跪求解释 Matlab中graphshortestpath的具体用法 需要什么参数,矩阵,得到什么结果?
matlab 关于spline函数问题运行出错
matlab求函数的参数!
寻Matlab达人.看看下面这段程序有错吗?为什运行完总是出错.
菜鸟求助:matlab中surf函数画参数函数的z如何确定为矩阵?
急求信道容量matlab编程代码!已知一个信道的信道转移矩阵为 p用Matlab编写函数求信道容量.
matlab 又出错 求解释!
matlab syms 运行出错
【Matlab程序运行出错】!