选择向前吧 发表于 2013-7-31 16:33

for循环求解方程组时报错

代码如下

d=;
mtx=;
mty=;%给出圆元参数
s=zeros(2,6);
f=1;
syms
x y
for i=1:1:2
for k=i+1:1:3

=solve((x-mtx(i))^2+(y-mty(i))^2-d(i)^2,(x-mtx(k))^2+(y-mty(k))^2-d(k)^2);

s(1,f)=x(1);
s(1,f+1)=x(2);
s(2,f)=y(1);

s(2,f+1)=y(2);
f=f+2;
end
end

报错
Error using
mupadmex
Error in MuPAD command: Index exceeds matrix
dimensions.

Error in sym/subsref (line 1577)
B =
mupadmex('symobj::subsref',A.s,inds{:});

Error in twostepML (line
98)

=solve((x-mtx(i))^2+(y-mty(i))^2-d(i)^2,(x-mtx(k))^2+(y-mty(k))^2-d(k)^2);
循环转不起来,请高人相助啊~

lvyanlong 发表于 2013-7-31 18:41

你的这个式子有问题  怎么有个“,”。

madio 发表于 2013-8-1 11:53

只有当i=1,k=3的时候这个方程组解不了,和你的数据有关,下面是我改的,代码可以运行d=;
mtx=;
mty=;%给出圆元参数
s=zeros(2,6);
f=1;
syms x y
for i=1:1:2
for k=i+1:1:2

=solve((x-mtx(i))^2+(y-mty(i))^2-d(i)^2,(x-mtx(k))^2+(y-mty(k))^2-d(k)^2);

s(1,f)=x(1);
s(1,f+1)=x(2);
s(2,f)=y(1);

s(2,f+1)=y(2);
f=f+2;

end
end
页: [1]
查看完整版本: for循环求解方程组时报错