查看: 2552|回复: 7|关注: 0

[已解决] 无法执行赋值,因为左侧的索引与右侧的大小不兼容,请问这个代码要怎么改,非常感谢!!!!

[复制链接]

新手

14 麦片

财富积分


050


3

主题

8

帖子

0

最佳答案
本帖最后由 hhhhhxxxxbbb 于 2020-6-18 16:34 编辑

R=1.37;K=6.2;P=4.57;C=6.57;W=161;A=7.92;Qy=15;Qq=550.9;Rq=2.16;w2=6;  
th2=(0:1/12:2)*pi;
th34=zeros(length(th2),2);
options=optimset('display','off');
for m=1:length(th2)
th34(m,:)=fsolve('sl',[1 1],options,th2(m),R,P,C,K);
end
for i=1:length(th2)
A=[-P*sin(th34(i,1)) C*sin(th34(i,2));...
P*cos(th34(i,1)) -C*cos(th34(i,2))];
B=[w2*R*sin(th2(i)); -w2*R*cos(th2(i))];
w=inv(A)*B;
w3(i)=w(1);
w4(i)=w(2);
end
for i=1:length(th2)
E=[-P*sin(th34(i,1)) C*sin(th34(i,2));...
P*cos(th34(i,1)) -C*cos(th34(i,2))];
D=[w2^2*R*cos(th2(i))+w3(i)^2*P*cos(th34(i,1))-w4(i)^2*C*cos(th34(i,2));...
w2^2*R*sin(th2(i))+w3(i)^2*P*sin(th34(i,1))-w4(i)^2*C*sin(th34(i,2))];
a=inv(E)*D;
a3(i)=a(1);
a4(i)=a(2);
end
for i=1:length(th2)
    n(i)=(W*A+Qy*A/2+Qy*A*C*a4(i)/2/C/pi)/(C*(tan(th34(i,2))-tan(th34(i,1))));
end
这是‘sl’函数文件
function t=sl(th,th2,R,P,C,K)
t=[R*cos(th2)+P*cos(th(1))-C*cos(th(2))+0.7597*K;R*sin(th2)+P*sin(th(1))-C*sin(th(2))-0.6426*K];




回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1630

帖子

342

最佳答案
  • 关注者: 81
发表于 2020-6-18 17:20:59 | 显示全部楼层 |此回复为最佳答案
因为左右两侧矩阵维度不同
一可以使用元胞数组
  1. n(i)=(W*A+Qy*A/2+Qy*A*C*a4(i)/2/C/pi)/(C*(tan(th34(i,2))-tan(th34(i,1))));
复制代码

改成
  1. n{i}=(W*A+Qy*A/2+Qy*A*C*a4(i)/2/C/pi)/(C*(tan(th34(i,2))-tan(th34(i,1))));
复制代码

二使用矩阵合并
  1. for i=1:length(th2)
  2.     n(i)=(W*A+Qy*A/2+Qy*A*C*a4(i)/2/C/pi)/(C*(tan(th34(i,2))-tan(th34(i,1))));
  3. end
复制代码

改成
  1. n=[];
  2. for i=1:length(th2)
  3.     na=(W*A+Qy*A/2+Qy*A*C*a4(i)/2/C/pi)/(C*(tan(th34(i,2))-tan(th34(i,1))));
  4.     n=[n,na];
  5. end
复制代码
回复此楼 已获打赏: 0 积分

举报

新手

14 麦片

财富积分


050


3

主题

8

帖子

0

最佳答案
 楼主| 发表于 2020-6-18 17:22:00 | 显示全部楼层
20141303 发表于 2020-6-18 17:20
因为左右两侧矩阵维度不同
一可以使用元胞数组

我去试一下,非常感谢您的回答!!!
回复此楼 已获打赏: 0 积分

举报

新手

14 麦片

财富积分


050


3

主题

8

帖子

0

最佳答案
 楼主| 发表于 2020-6-19 09:05:28 | 显示全部楼层

您可以再帮忙看一下这个代码为什么显示不出图形吗,非常感谢!!

20141303 发表于 2020-6-18 17:20
因为左右两侧矩阵维度不同
一可以使用元胞数组

clear;clc
R=1.37;K=6.2;P=4.57;C=6.57;W1=161;o=7.92;Qy=15;Qq=550.9;Rq=2.16;w2=6;  
th2=(0:1/12:2)*pi;
th34=zeros(length(th2),2);
options=optimset('display','off');
for m=1:length(th2)
th34(m,:)=fsolve('sl',[1 1],options,th2(m),R,P,C,K);
end
for i=1:length(th2)
A=[-P*sin(th34(i,1)) C*sin(th34(i,2));...
P*cos(th34(i,1)) -C*cos(th34(i,2))];
B=[w2*R*sin(th2(i)); -w2*R*cos(th2(i))];
w=inv(A)*B;
w3(i)=w(1);
w4(i)=w(2);
end
for i=1:length(th2)
E=[-P*sin(th34(i,1)) C*sin(th34(i,2));...
P*cos(th34(i,1)) -C*cos(th34(i,2))];
D=[w2^2*R*cos(th2(i))+w3(i)^2*P*cos(th34(i,1))-w4(i)^2*C*cos(th34(i,2));...
w2^2*R*sin(th2(i))+w3(i)^2*P*sin(th34(i,1))-w4(i)^2*C*sin(th34(i,2))];
a=inv(E)*D;
a3(i)=a(1);
a4(i)=a(2);
end
for i=1:length(th2)
    f12x(i)=(W1.*o+Qy.*o./2+Qy.*o.*C.*a4(1,i)./2./C./pi)/(C.*(tan(th34(i,2))-tan(th34(i,1))));
    f12y(i)=f12x(i).*tan(th34(i,1));
    f43x=(W1.*o+Qy.*o./2)./(C.*(tan(th34(i,2))-tan(th34(i,1))))-(Qy*A/2/C/pi)*a4(i)*cos(th34(i,2));
    f43y=(W1.*o+Qy.*o./2)*tan(th34(i,2))./(C.*(tan(th34(i,2))-tan(th34(i,1))))+Qy+W1-(Qy*A/2/C/pi)*a4(i)*sin(th34(i,2));
    f41x(i)=-f12x(i);
    f41y(i)=Qy-f12y(i);
    tn(i)=f12x(i)*R*sin(th2(i))-f12y(i)*R*cos(th2(i))-Qq*Rq*cos(th2(i)+23*pi/180);
end
for i=1:length(th2)
    plot(i,tn(i))
end
这是‘sl’函数文件
function t=sl(th,th2,R,P,C,K)
t=[R*cos(th2)+P*cos(th(1))-C*cos(th(2))+0.7597*K;R*sin(th2)+P*sin(th(1))-C*sin(th(2))-0.6426*K];








回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1630

帖子

342

最佳答案
  • 关注者: 81
发表于 2020-6-19 09:27:15 | 显示全部楼层
  1. for i=1:length(th2)
  2.     plot(i,tn(i))
  3. end
复制代码

改成
  1. i=1:length(th2);
  2. plot(i,tn)
复制代码

试试
回复此楼 已获打赏: 0 积分

举报

新手

14 麦片

财富积分


050


3

主题

8

帖子

0

最佳答案
 楼主| 发表于 2020-6-19 09:38:36 | 显示全部楼层

好的,问题解决了,非常感谢您!!!
回复此楼 已获打赏: 0 积分

举报

新手

14 麦片

财富积分


050


3

主题

8

帖子

0

最佳答案
 楼主| 发表于 2020-6-19 11:58:20 | 显示全部楼层

请问可以对th2进行分段吗,比如当th2=(0:1)*pi时,W1=161,但是当th2=(1:2)*pi时,W1=80,之后再利用th2,W1和其他已知参数对未知参数求值,麻烦您再帮帮忙,真的感谢您了
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

9

主题

1630

帖子

342

最佳答案
  • 关注者: 81
发表于 2020-6-19 17:16:56 | 显示全部楼层
可以,加个判断语句即可
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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