查看: 357|回复: 0|关注: 0

[未答复] matlab中while循环不会用。想利用建立六边形优化圆心和圆度误差。

[复制链接]

新手

30 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 2020-11-19 09:35:41 | 显示全部楼层 |阅读模式
10 财富积分

本帖最后由 nidhogg666 于 2020-11-29 23:39 编辑

xq,yq为初始圆心位置,现在想以初始位置建造一个六边形,X1,Y1为第一个六边形六个点坐标,R2为圆上测量点到六边形六个顶点的距离,a为六个极差距离中的最小值,b为六个极差距离中倒数第二小的值,现要b减去a的值若大于q,则在a对应的六边形的顶点j点继续建造更小的六边形,不断循环,最后输出a。运行之后就一直卡在while循环里出不来了,且a和b并不会随着循环逐渐减小,求大神解惑。(测量点x,y在附件)

clear all
xq=0;
yq=0;
q=0.0001;

b=0.0038;
a=0.0034;

while b-a>q
    for j=1:6
    X1(j)=xq+0.618*cos(pi/3*(j-1));
    end
    for j=1:6
    Y1(j)=yq+0.618*sin(pi/3*(j-1));
    end

R2=sqrt((x-X1).^2+(y-Y1).^2);
Rmax1=max(R2);
Rmin1=min(R2);
Rc1=Rmax1-Rmin1;  
[a,j]=min(Rmax1);
b=min(Rmax1(find(Rmax1-min(Rmax1))));

xq=X1(j);
yq=Y1(j);
end

xy.txt

1.79 KB, 下载次数: 0

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

举报

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

本版积分规则

关闭

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

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