首页 > 解决方案 > 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

标签: matlab

解决方案


在您的 main 函数中,这是变量的第一次使用:

  x = [O(1) A(1) B(1) C(1)];

它们以前从未写过。而是写入 A1,这是一个不同的变量。我猜你把两者混为一谈了。


推荐阅读