查看: 62|回复: 4|关注: 0

[已答复] 请问此程序怎么修改 下索引必须为正整数或逻辑类型

[复制链接]

新手

5 麦片

财富积分


050


5

主题

11

帖子

0

最佳答案
发表于 2019-10-10 20:29:22 | 显示全部楼层 |阅读模式
本帖最后由 我的t 于 2019-10-10 20:35 编辑

%结构参数初始化
clear;
clc;
Lmin=400;%支链一最小长度
Lmax=800;%支链一最大长度
L2=500;%支链二长度
L3=500;%支链三长度
r=300;%动平台外接圆半径
R=600;%定平台外接圆半径
thetamax=pi/4;
thetamin=-pi/4;
zmax=800;
zmin=0;
hold on
grid on
xlabel('X')
ylabel('Y')
zlabel('Z')
title('工作空间')
for q=-400:16:400
    for i=0:pi/50:pi
        for j=0:pi/50:pi
            x=400*cos(i).*sin(j);
            y=-400*sin(i);
            z=400*cos(i).*cos(j)+q;
%求解分支一的约束条件           
              x1=r*sin(i).*sin(j);
              y1=r*cos(i);
              z1=r*sin(i).*cos(j)+q;
              
        % 1 U副杆长约束条件
              L1=sqrt(x1^2+(y1-R)^2+z1^2); %u副角1;      
              
        % 1 U副转角约束条件
              theta1=atan((R-y1)/z1); %u副角1;
        
%求解分支二的约束条件
              x2=-150*sqrt(3)*cos(j)-150*sin(i).*sin(j);
              y2=-150*cos(i);
              z2=150*sqrt(3)*sin(j)-150*sin(i).*cos(j)+q;
         % 2 U副转角约束条件
              theta2=atan(-(y2+r*sqrt(3))/z2); %u副角2;
%求解分支三的杆长约束条件
              x3=150*sqrt(3)*cos(j)-150*sin(i).*sin(j);
              y3=-150*cos(i);
              z3=-150*sqrt(3)*sin(j)-150*sin(i).*cos(j)+q;
         % 1 U副转角约束条件
              theta3=atan(-(y3+r*sqrt(3))/z3);%u副角3;
           
           if ((Lmin<=L1)&&(L1>=Lmax)&&(thetamin>=theta1)&&(theta1<=thetamax))&&((thetamin>=theta2)&&(theta2<=thetamax))&&((thetamin>=theta3)&&(theta3<=thetamax))
                x(i,j)=X;
                y(i,j)=Y;
                z(i,j)=Z;      
               
        
           end
        end
    end
end
plot3(X,Y,Z,'o')

新手

5 麦片

财富积分


050


5

主题

11

帖子

0

最佳答案
 楼主| 发表于 2019-10-10 20:30:27 | 显示全部楼层
本帖最后由 我的t 于 2019-10-10 20:34 编辑

此程序怎么修改 下索引必须为正整数或逻辑类型

入门

75 麦片

财富积分


50500


2

主题

146

帖子

13

最佳答案
  • 关注者: 6
发表于 2019-10-10 20:37:48 | 显示全部楼层
我的t 发表于 2019-10-10 20:30
此程序怎么修改 下索引必须为正整数或逻辑类型

你的X,Y,Z是什么?都没有定义。。。

新手

5 麦片

财富积分


050


5

主题

11

帖子

0

最佳答案
 楼主| 发表于 2019-10-10 20:43:22 | 显示全部楼层
Leedear 发表于 2019-10-10 20:37
你的X,Y,Z是什么?都没有定义。。。

我想的是X Y Z作为对应坐标系,我对MATLAB不是很了解,请问这个应该怎么修改定义

入门

75 麦片

财富积分


50500


2

主题

146

帖子

13

最佳答案
  • 关注者: 6
发表于 2019-10-10 20:51:03 | 显示全部楼层
我的t 发表于 2019-10-10 20:43
我想的是X Y Z作为对应坐标系,我对MATLAB不是很了解,请问这个应该怎么修改定义 ...

                x(i,j)=X;
                y(i,j)=Y;
                z(i,j)=Z;  
你上面三行的赋值是无效的,因为你没有对X进行如X= 1;这种的赋值,X是没有定义的,你要给它一个具体值才行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表