程序中 此类型的变量不支持使用点进行索引

我Matlab建机械手云图时,它报错“此类型的变量不支持使用点进行索引”,我还是第一次遇到,希望有人看看
程序是这个

%建立机器人模型
%        theta    d        a        alpha     offset
L1=Link([pi/2     85       27       -pi/2     0     ]); %定义连杆的D-H参数
L2=Link([-pi/2    0        102      0         0     ]);
L3=Link([0        0        20       -pi/2     0     ]);
L4=Link([0        96       0         pi/2     0     ]);
L5=Link([0        0        0        -pi/2     0     ]);
L6=Link([0        39       0        0         0     ]);
robot=SerialLink([L1 L2 L3 L4 L5 L6],'name','manji'); %连接连杆,机器人取名manji
%为每一个关节设置旋转角度限制
l1u = 180.0;
l1d = -180.0;
l2u = -90.0;
l2d = 90.0;
l3u = -90.0;
l3d = 90.0;
l4u = -180.0;
l4d = 180.0;
l5u = -90.0;
l5d = 90.0;
l6u = -180.0;
l6d = 180.0;
%示教并进行工作空间计算
teach(robot); 
robot.plot([pi/2,-pi/2,0,0,0,0])
hold on;
N=2000; %随机取得的工作点个数

theta1=(l1d+(l1u-l1d)*rand(N,1))*pi/180; %随机取得关节1角度
theta2=(l2d+(l2u-l2d)*rand(N,1))*pi/180; %随机取得关节2角度
theta3=(l3d+(l3u-l3d)*rand(N,1))*pi/180; %随机取得关节3角度
theta4=(l4d+(l4u-l4d)*rand(N,1))*pi/180; %随机取得关节4角度
theta5=(l5d+(l5u-l5d)*rand(N,1))*pi/180; %随机取得关节5角度
theta6=(l6d+(l6u-l6d)*rand(N,1))*pi/180; %随机取得关节6角度

for n=1:1:N
q=[theta1(n),theta2(n),theta3(n),theta4(n),theta5(n),theta6(n)];
robot.plot(q);%动画显示
p=robot.fkine(q);
a=zeros(3,1);
a(:,1)=p(1,1,1).t;
plot3(a(1,1),a(2,1),a(3,1),'b.','MarkerSize',0.5);%画出落点
hold on;
end

报错是这样的

img

检查下工作区里变量p当前值是否为空,有无成员属性t,可能是之前的程序计算有问题导致p无法正常被索引。