matlab - 3dos 机制的未定义函数或变量
问题描述
我试图在 matlab 中制作一个 3dof(3 个自由度机制),但我得到了这个错误,我不知道为什么。这是一个学校项目,我需要模拟人的手指。代码运行正常,但在我输入角度值后,它说 A、B、C 未定义,我不知道为什么
a1 = input('valuarea lui q1(grade):');
a2 = input('valuarea lui q2(grade):');
a3 = input('valuarea lui q3(grade):');
L1=35;
L2=45;
L3=30;
z = [-10 10];
plot(z,10);
grid ON;
O=[0;0;0;1];
m= linspace(pi/2,pi/2+a1*pi/180,100);
n = linspace(-pi/2,a2*pi/180,100);
k=linspace(-pi/2,a3*pi/180,100);
for a=1:100
[A1,B1,C1] = Transform(m(a),n(a),k(a),L1,L2,L3);
x = [O(1) A(1) B(1) C(1)];
y = [O(2) A(2) B(2) C(2)];
Cx(i)= C1(1);
Cy(i) = C1(2);
i=i+1;
Plot = plot(x,y,'r',...1
'LineWidth',1);
title('Sumularea unui deget');
plot(Cx,Cy,'--g',...
'LineWidth',1);
pause(0.075);
delete(Plot);
end
plot(x,y,'r',...
'LineWidth',3);
function [A,B,C ] = Transform( m,n,p,l1,l2,l3 )
P = [0;0;0;1];
T1 = [cos(m) -sin(m) 0 0;sin(m) cos(m) 0 0;0 0 1 0; 0 0 0 1];
T2 = [cos(n) -sin(n) 0 11;sin(n) cos(n) 0 0;0 0 1 0; 0 0 0 1];
T3 = [cos(p) -sin(p) 0 12;sin(p) cos(p) 0 0;0 0 1 0; 0 0 0 1];
T4 = [1 0 0 13;0 1 0 0; 0 0 1 0; 0 0 0 1];
A = T1*T2*P;
B = T1*T2*T3*P;
C = T1*T2*T3*T3*P;
end
解决方案
在您的 main 函数中,这是变量的第一次使用:
x = [O(1) A(1) B(1) C(1)];
它们以前从未写过。而是写入 A1,这是一个不同的变量。我猜你把两者混为一谈了。
推荐阅读
- c# - 检查字符串是否包含一个单词,即使它的大小写不同c#
- java - 将数组内的数字相加
- django - 如何使用 select_related 加入多个模型?
- mongodb - 仅当字符串字段存在于MongoDB中时如何拆分它?
- r - 对 RMANOVA 进行组比较 Shapiro-Wilks 测试时遇到问题
- php - 在 PHP 中打印从 JSON 收集项目订单的字符串
- cobol - 使用 CICS COBOL 在网页上发送和显示十六进制值
- java - 使用 Spring Web 流 + JSF 不会在流中捕获动作事件
- swift - 单击collectionview的单元格时打开另一个视图控制器
- pug - pug 中的“- if ... - else”命令与“if ... else”命令相同吗?