zdlzdl184 2021-02-26 20:34 采纳率: 100%
浏览 577
已采纳

matlab采用while循环,为何循环计算输出的所有结果都是第一次计算的结果?

clc;clear all;close all;
cloudd=load('40-0.01- Cloud.txt','-ascii');%稀释的少,密度高
B=[cloudd];
m_1=B(:,1);
m_2=B(:,2);m_3=B(:,3);
X_=mean(m_1);Y_=mean(m_2);Z_=mean(m_3);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
l=-89 
k=1
while l<80;
ak=cot(l)
E=ak;F=1;G=0;
j=1;
for i=1:size(B',2)
if (abs(E*((m_1(i))-X_)+F*((m_2(i))-Y_)+G*((m_3(i))-Z_))/(sqrt(E^2+F^2+G^2)))<0.001%厚`度
m1_(j,:)=m_1(i,:);
m2_(j,:)=Y_;
m3_(j,:)=m_3(i,:);
j=j+1;
end
end
 
for i=1:size(m1_,1)
t=(E*X_+ F*Y_+G*Z_-(E*(m1_(i))+F*(m2_(i))+G*(m3_(i))))/(sqrt(E^2+F^2+G^2));%垂直投影
m11_(i,:)=m1_(i)+E*t;
m22_(i,:)=m2_(i)+F*t;
m33_(i,:)=m3_(i)+G*t;
end
 
f2=mean(m1_);
for i=1:size(m1_,1)
    f3(i,1)=f2;
end
rr=m1_-f3;
nn=m3_;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x=[rr,nn];
p0=[0.005 0.005 0.005 0.005 0.005 0.005];
warning off
F=@(p,x)p(1)*x(:,1).^2+p(2)*x(:,1).*x(:,2)+p(3)*x(:,2).^2+p(4)*x(:,1)+p(5)*x(:,2)+p(6);
% 拟合系数,最小二乘方法
p=nlinfit(x,zeros(size(x,1),1),F,p0);
p(1);
p(2);
p(3);
p(4);
p(5);
p(6);
 
 
A=p(1)/p(6);
B=p(2)/p(6);
C=p(3)/p(6);
D=p(4)/p(6);
E=p(5)/p(6);
 
%%椭圆中心
X_center = (B*E-2*C*D)/(4*A*C - B^2);
Y_center = (B*D-2*A*E)/(4*A*C - B^2);
fprintf(' X_center=%g, Y_center=%g\n',X_center,Y_center);
 
%%长短轴
b= sqrt((2*A*(X_center^2)+2*C*(Y_center^2)+2*B*X_center*Y_center-2)/(A+C+sqrt(((A-C)^2+B^2))))
a= sqrt((2*A*(X_center^2)+2*C*(Y_center^2)+2*B*X_center*Y_center-2)/(A+C-sqrt(((A-C)^2+B^2))))
c=sqrt(a^2-b^2)
e=c/a;
w=asin(e)
g=abs(b-a);
T11(k)=g
 
 
k=k+1 
l=l+10;
end
d = min(T11)

这个循环中的a值与b值,一直输出的是第一次结果的值,循环几次就输出几次第一次计算的结果

就是最后那里的长短轴部分,我奇怪的是他输出了多次最后一个结果,就好像每一次计算的都一样,每次循环结果都是第一个的值

但如果一个一个带入计算,而不是循环,结果就是不一样的,这是为什么

也就是说他确实在循环,但是结果确是第一次计算输出多次

  • 写回答

3条回答 默认 最新

  • ProfSnail 2021-02-26 21:20
    关注

    你好,如果方便的话,可以私信把你读取的txt文档发给我一份,我在本地上调试一下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 解决websocket跟c#客户端通信
  • ¥30 Python调用dll文件输出Nan重置dll状态
  • ¥15 浮动div的高度控制问题。
  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴