MATLAB中矩阵格式的问题

原始代码如下

img


代码运行结果

img


在运行完T = robot.fkine(q);时,将机器人在给定关节角度下的末端执行器位姿赋值给T之后,用disp输出的矩阵是44,但是用size得到的矩阵大小就是11了,这是哪里出了问题?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt: 首先,我们需要了解MATLAB中的矩阵和变量的概念。矩阵是由数值按照一定顺序排列而成的一个矩形数表,而变量则是用于存储某个数值或一组数值的标识符。 针对这个问题,我们可以通过以下几个步骤解决: 1. 检查变量T的类型和大小:使用whos命令查看变量T的类型和大小,确保T是一种矩阵类型,并且大小为4x4。 2. 确认赋值操作是否正确:检查机器人正运动学函数中,将机器人末端执行器位姿赋值给T矩阵的操作是否正确。如果有误,可能会导致变量T的类型和大小发生变化。 3. 使用disp函数输出详细信息:除了输出矩阵本身外,还可以通过在disp函数中添加参数,输出矩阵的详细信息,例如: disp('T矩阵:'); disp(T); disp(['T矩阵大小为:', num2str(size(T))]); 4. 对比输出结果:通过以上步骤,我们可以得到T矩阵的值、大小和类型等详细信息,将其与之前的输出结果进行对比,查找问题所在。如果仍无法解决问题,可能需要进一步检查机器人正运动学函数和相应的程序代码。 代码示例: % 定义机器人正运动学函数 function T = fkine(q) % q:机器人关节角度 % 返回值T:机器人末端执行器位姿矩阵 % 进行运动学计算 ... % 将机器人末端执行器位姿赋值给T矩阵 T = ... end % 调用机器人正运动学函数,并输出矩阵信息 T = fkine(q); disp('T矩阵:'); disp(T); disp(['T矩阵大小为:', num2str(size(T))]);

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^