MATLAB中如何在for循环中嵌套solve函数

当改变圆的圆心坐标时,想求两圆的交点坐标!求大神指导,我是小白一只!代码如下:symsxzmask=[];i=1;h=0.05;forx1=5:-0.1:1z1=sqrt... 当改变圆的圆心坐标时,想求两圆的交点坐标!求大神指导,我是小白一只!
代码如下:
syms x z
mask=[];
i=1;
h=0.05;
for x1=5:-0.1:1
z1=sqrt((500.5)^2-x1^2)-0.006; %定义参量z1
[x,z]=solve(x^2+z.^2==250000,(x-x1)^2+(z-z1)^2==0.25); %解两圆交点坐标
mask(i,1)=x1/12;
mask(i,2)=sqrt(x(1,1)^2+h^2)-sqrt(x(2,1)^2+h^2);
i=i+1;
end
plot(mask(:,1),mask(:,2));
展开
 我来答
lhmhz
高粉答主

2019-04-25 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17020

向TA提问 私信TA
展开全部

题主的代码出现错误的原因,是x、y变量声明书写的位置不恰当。因为每次用solve求解时,需要重新对x、y变量声明,所以该声明必须放置for循环语句中。即
for x1=5:-0.1:1
syms x z
z1=sqrt((500.5)^2-x1^2)-0.006; %定义参量z1
[x,z]=solve(x^2+z.^2==250000,(x-x1)^2+(z-z1)^2==0.25); %解两圆交点坐标
mask(i,1)=x1/12;
mask(i,2)=sqrt(x(1,1)^2+h^2)-sqrt(x(2,1)^2+h^2);
i=i+1;
end

紫薇命free
2019-04-24 · TA获得超过3350个赞
知道大有可为答主
回答量:5881
采纳率:2%
帮助的人:291万
展开全部
可以一起用,但要注意用法。如果solve的参数是字符串,需要注意把循环控制变量转换为字符串;或者换用符号表达式的方式调用solve函数。
追问
我试了好久好久,不会-_-||,一直报错
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式