有关matlab循环语句的问题,求大神解答,主要是循环错在哪了

matlab问题,循环体有一些小毛病,一直没找哪错误,求大神指点。_百度知道
matlab问题,循环体有一些小毛病,一直没找哪错误,求大神指点。
20 22 23 24 27 29 30 31 33 34 35 36 ,
L=length(find(y==1)),程序如下,
38 40 42 43 44 45 46 47 50 51 52 53 ,E=78,=1,
point(M)=[],j)=0,
point(48-h)=0,
continue,m)=0,,48) 可是循环一次就结束了,,while point~=zeros(1,,m)),
[i,,point=[2 3 4 5 7 8 10 12 16 17 18 19 ,j)=1,80
Y(m,j)=1,,,,=0) = NaN,
if 79-L+e==E&&c&gt,
55 59 61 62 63 64 66 70 71 74 76 77],))+sum(Y(,
h=h+1,j]=find(A==min(b)),
c=sum(Y(m,end我想要最后结果得到 point=zeros(1,*a,48
m=point(M),
a(i,n)=0,,
提问者采纳
48)返回的是一个向量而不是一个数值while point~=zeros(1,point~=zeros(1,48) 应改为while sum(point~=zeros(1,48)),
谢谢 我再改改
提问者评价
其他类似问题
循环体的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求大神帮我改一下下面的程序!matlab迭代法的
不知道错在哪里! - 程序语言 - 小木虫 - 学术 科研 第一站
&& 查看话题
求大神帮我改一下下面的程序!matlab迭代法的
不知道错在哪里!
z(1)=-620;
p(1)=0.2988;
a(1)=-0.1096;
b(1)=0.5996;
c(1)=0.3507;
d(1)=-0.3882;& && && & %%设定初值
for& && &i=2:101;& && &&&
a(i-1)=-0.1096+(i-1)*0.002648;
b(i-1)=0.5996+(i-1)*0.000269;
c(i-1)=0.3507+(i-1)*0.004468;
d(i-1)=-0.3882+(i-1)*0.007478;& && &&&%%第(i-1)的角度值
A(i-1)=x(i-1)+122.9075-48*sin(p(i-1)+0.87)+62*sin(p(i-1))-(2^(-1/2))*(265+375*sin(a(i-1)));
B(i-1)=y(i-1)+48.55-48*cos(p(i-1)+0.87)+62*cos(p(i-1))-(2^(-1/2))*(285+375*sin(a(i-1)));
C(i-1)=z(i-1)-375*cos(a(i-1));
D(i-1)=x(i-1)-7.9075-48*sin(p(i-1)+0.87)+62*sin(p(i-1))+(2^(-1/2))*(265+375*sin(b(i-1)));
E(i-1)=y(i-1)+48.55-48*cos(p(i-1)+0.87)+62*cos(p(i-1))-(2^(-1/2))*(285+375*sin(b(i-1)));
F(i-1)=z(i-1)-375*cos(b(i-1));
G(i-1)=x(i-1)-7.9075-48*sin(p(i-1)+0.87)+(2^(-1/2))*(265+375*sin(c(i-1)));
H(i-1)=y(i-1)-48.55-48*cos(p(i-1)+0.87)+(2^(-1/2))*(285+375*sin(c(i-1)));
K(i-1)=z(i-1)-375*cos(c(i-1));
L(i-1)=x(i-1)+122.9075-48*sin(p(i-1)+0.87)-(2^(-1/2))*(265+375*sin(d(i-1)));
M(i-1)=y(i-1)-48.55-48*cos(p(i-1)+0.87)+(2^(-1/2))*(285+375*sin(d(i-1)));
N(i-1)=z(i-1)-375*cos(d(i-1));
P(i-1)=375*(2^(1/2)*A(i-1)*cos(a(i-1))+2^(1/2)*B(i-1)*cos(a(i-1))-2*C(i-1)*sin(a(i-1)));
Q(i-1)=375*(-2^(1/2)*D(i-1)*cos(b(i-1))+2^(1/2)*E(i-1)*cos(b(i-1))+2*F(i-1)*sin(b(i-1)));
R(i-1)=-375*(2^(1/2)*G(i-1)*cos(c(i-1))+2^(1/2)*H(i-1)*cos(c(i-1))+2*K(i-1)*sin(c(i-1)));
S(i-1)=375*(2^(1/2)*L(i-1)*cos(d(i-1))-2^(1/2)*M(i-1)*cos(d(i-1))-2*N(i-1)*sin(d(i-1)));
T(i-1)=-(A(i-1)*(48*cos(p(i-1)+0.87)-62*cos(p(i-1)))+B(i-1)*(48*sin(p(i-1)+0.87))-62*sin(p(i-1)));
U(i-1)=-(D(i-1)*(48*cos(p(i-1)+0.87)-62*cos(p(i-1)))+E(i-1)*(48*sin(p(i-1)+0.87))-62*sin(p(i-1)));
V(i-1)=-G(i-1)*48*cos(p(i-1)+0.87)+H(i-1)*48*sin(p(i-1)+0.87);
W(i-1)=-L(i-1)*48*cos(p(i-1)+0.87)+M(i-1)*48*sin(p(i-1)+0.87);&&&& A-W的表达式
x(i)=x(i-1)+2*A(i-1)*0.151796/P(i-1)+2*B(i-1)*0.01542/P(i-1)+2*C(i-1)*0.256127/P(i-1)+2*T(i-1)*0.428675/P(i-1);
y(i)=y(i-1)+2*D(i-1)*0.151796/Q(i-1)+2*E(i-1)*0.01542/Q(i-1)+2*F(i-1)*0.256127/Q(i-1)+2*U(i-1)*0.428675/Q(i-1);
z(i)=z(i-1)+2*G(i-1)*0.151796/R(i-1)+2*H(i-1)*0.01542/R(i-1)+2*K(i-1)*0.256127/R(i-1)+2*V(i-1)*0.428675/R(i-1);
p(i)=p(i-1)+2*L(i-1)*0.151796/S(i-1)+2*M(i-1)*0.01542/S(i-1)+2*N(i-1)*0.256127/S(i-1)+2*W(i-1)*0.428675/S(i-1);& && &%%所求的x y z p的表达式
& && &%%输出x y z p
x y z p初值已知,迭代100次& &上面这个程序运算出来貌似不是我要的结果。。。迭代循环是不是有问题啊?谢谢大神!
你好,我刚看了你修改过的程序,你的目的应该是一直x,y,z,p的初值,然后经过迭代(经过A-W的中间处理),最后得到迭代100次后的x,y,z,p值,如果正常的话,计算结果应该逐渐趋于某一组值,即收敛。
你的程序中a(i-1)=-0.1096+(i-1)*0.002648是不是应该修改为:
a(i-1)=-0.1096+(i-2)*0.002648,因为i=2时,a(1)=-0.1096.
修改后的程序如下:
p1=0.2988;
% a1=-0.1096;
% b1=0.5996;
% c1=0.3507;
% d1=-0.3882;& && && & %%设定初值
for&&i=1:100& && &
& & a=-0.1096+(i-1)*0.002648;
& & b=0.5996+(i-1)*0.000269;
& & c=0.3507+(i-1)*0.004468;
& & d=-0.3882+(i-1)*0.007478;& && &&&%%第(i-1)的角度值
& & A1=x1+122.9075-48*sin(p1+0.87)+62*sin(p1)-(2^(-1/2))*(265+375*sin(a));
& & B1=y1+48.55-48*cos(p1+0.87)+62*cos(p1)-(2^(-1/2))*(285+375*sin(a));
& & C1=z1-375*cos(a);
& & D1=x1-7.9075-48*sin(p1+0.87)+62*sin(p1)+(2^(-1/2))*(265+375*sin(b));
& & E1=y1+48.55-48*cos(p1+0.87)+62*cos(p1)-(2^(-1/2))*(285+375*sin(b));
& & F1=z1-375*cos(b);
& & G1=x1-7.9075-48*sin(p1+0.87)+(2^(-1/2))*(265+375*sin(c));
& & H1=y1-48.55-48*cos(p1+0.87)+(2^(-1/2))*(285+375*sin(c));
& & K1=z1-375*cos(c);
& & L1=x1+122.9075-48*sin(p1+0.87)-(2^(-1/2))*(265+375*sin(d));
& & M1=y1-48.55-48*cos(p1+0.87)+(2^(-1/2))*(285+375*sin(d));
& & N1=z1-375*cos(d);
& & P1=375*(2^(1/2)*A1*cos(a)+2^(1/2)*B1*cos(a)-2*C1*sin(a));
& & Q1=375*(-2^(1/2)*D1*cos(b)+2^(1/2)*E1*cos(b)+2*F1*sin(b));
& & R1=-375*(2^(1/2)*G1*cos(c)+2^(1/2)*H1*cos(c)+2*K1*sin(c));
& & S1=375*(2^(1/2)*L1*cos(d)-2^(1/2)*M1*cos(d)-2*N1*sin(d));
& & T1=-(A1*(48*cos(p1+0.87)-62*cos(p1))+B1*(48*sin(p1+0.87))-62*sin(p1));
& & U1=-(D1*(48*cos(p1+0.87)-62*cos(p1))+E1*(48*sin(p1+0.87))-62*sin(p1));
& & V1=-G1*48*cos(p1+0.87)+H1*48*sin(p1+0.87);
& & W1=-L1*48*cos(p1+0.87)+M1*48*sin(p1+0.87);&&% A-W的表达式
& & x2=x1+2*A1*0.+2*B1*0.0*C1*0.+2*T1*0.;
& & y2=y1+2*D1*0.+2*E1*0.0*F1*0.+2*U1*0.;
& & z2=z1+2*G1*0.+2*H1*0.0*K1*0.+2*V1*0.;
& & p2=p1+2*L1*0.+2*M1*0.0*N1*0.+2*W1*0.;& && &%%所求的x y z p的表达式
& & x1=x2;&&%迭代
& & y1=y2;
& & z1=z2;
& & p1=p2;
%& && && &&&%%输出x y z p
disp('x2=');
disp('y2=')
disp('z2=')
disp('p2=')
计算结果:
&&196.4266
&&-92.4946
& &-1.2086
希望对你有用。 : Originally posted by csl_2012 at
你好,我刚看了你修改过的程序,你的目的应该是一直x,y,z,p的初值,然后经过迭代(经过A-W的中间处理),最后得到迭代100次后的x,y,z,p值,如果正常的话,计算结果应该逐渐趋于某一组值,即收敛。
你的程序中a(i-1)= ... 太感谢您了!可以求disp(x2),怎么求disp(x100)呢?把里面的2改了就算不出来了,小弟新手,刚用ml,谢谢指点! 我计算的就是x100,在迭代过程中,每次x2在x1的基础上计算,你要的迭代100次,我最后输出的就是迭代100次后的结果。x1,x2只是变量而已,你好好看看程序就明白了。 : Originally posted by csl_2012 at
我计算的就是x100,在迭代过程中,每次x2在x1的基础上计算,你要的迭代100次,我最后输出的就是迭代100次后的结果。x1,x2只是变量而已,你好好看看程序就明白了。 谢谢您!那就是这个方法不能得到我预计的结果。。。还得换个思路。。。 : Originally posted by csl_2012 at
我计算的就是x100,在迭代过程中,每次x2在x1的基础上计算,你要的迭代100次,我最后输出的就是迭代100次后的结果。x1,x2只是变量而已,你好好看看程序就明白了。 我想问一下,您帮我改的这个程序是不是类似于&&x2=x1+t1(根随i变化的方程),x3=x2+t2...
x100=x99+t99,&&是这个意思么? 是的,你可以找本数值分析的书看看,有关于迭代法的详细介绍。 : Originally posted by csl_2012 at
是的,你可以找本数值分析的书看看,有关于迭代法的详细介绍。 好的,太感谢了!嘻嘻~
var cpro_id = 'u1216994';
欢迎监督和反馈:本帖内容由
提供,小木虫为个人免费站点,仅提供交流平台,不对该内容负责。欢迎协助我们监督管理,共同维护互联网健康,如果您对该内容有异议,请立即发邮件到
联系通知管理员,也可以通过QQ周知,我们的QQ号为:8835100
我们保证在1个工作日内给予处理和答复,谢谢您的监督。
小木虫,学术科研第一站,为中国学术科研研究提供免费动力
欢迎监督,发现不妥请立即
E-mail: & QQ:8835100求大神解答一个小问题,详细请看_matlab吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:53,433贴子:
求大神解答一个小问题,详细请看收藏
M文件 cir2.mfunction dy=cir2(t,
y);Vi=20;R=5;L=70e-03;dy=zeros(1,
1);dy(1)=(Vi-y(1)*R)/L;M文件 cir2simu.mt0=0;tfinal=0.16;tspan=[t0 tfinal];[t, y]=ode45(@cir2, tspan, [0]);plot(t, y(:, 1);title('I--Time');xlabel('Time(sec)');ylabel('I(A)');但是一运行Error in ==& cir2 at 6dy(1)=(Vi-y(1)*R)/L;??? Error: File: D:\MATLAB7.0UP\work\cir2simu.m Line: 5 Column: 16Incomplete or misformed expression or statement.求解答
单个程序没有错,你看一下你Y的数值
cir2simu.m文件中plot那行少一个“)”。还有cir2.m文件中最后一行的方程对吗?我把方程里的括号去掉了,运行没有任何问题。
M文件 cir2.mfunction dy=cir2(t, y);Vi=20;R=5;L=70e-03;dy=Vi-y*R/L;M文件 cir2simu.mt0=0;tfinal=0.16;tspan=[t0 tfinal];[t, y]=ode45(@cir2, tspan, [0]);plot(t, y(:,1));title('I--Time');xlabel('Time(sec)');ylabel('I(A)');
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
使用签名档&&
为兴趣而生,贴吧更懂你。或百分求大神解答MATLAB问题:1. 分别利用中心差商、向前差商和向后差商公式求 在 处的导数值(其中步长取 ),并对计算误差进行比较,给出结论。
百分求大神解答MATLAB问题:1. 分别利用中心差商、向前差商和向后差商公式求 在 处的导数值(其中步长取 ),并对计算误差进行比较,给出结论。
不区分大小写匿名
等待您来回答
学习帮助领域专家
当前分类官方群专业解答学科习题,随时随地的答疑辅导这段MATLAB代码 没问题是书上的 但是运行不出来求大神解答。_百度知道
这段MATLAB代码 没问题是书上的 但是运行不出来求大神解答。
tnow=tnow+m,)
%画星座图title(&#39,估测偏移值&#39,length(x)-2*l*m
% 运行迭代算法
i=i+1,n),i-2))
%画tau的轨迹图ylabel(&#39,mu=0, % 得到右侧的值
x_deltam=interpsinc(x,1, plot(xs(1,
xs(i)=interpsinc(x,-1,
% 内插值为tnow+tau
x_deltap=interpsinc(x,tnow+tau+delta, plot(tausave(1,1,003,Error in Untitled (line 1)tnow=l*m+1,tnow+tau-delta, tau=0,)错误提示是Undefined function or variable &#39,)subplot(2,tnow=l*m+1,n),), i=0,l),ylabel(&#39,tnow+tau,
% 保存用来作图end% 画图结果figure(1),
% 算法更新,&#39,
% 量化xs至最接近的4-PAM符号值
tau=tau+mu*dx*(qx-xs(i)),
% 初始化变量tausave=zeros(1,n),1),点阵图&#39,l),, tausave(1)=tau,
% 计算导数值
qx=quantalph(xs(i),),符号估计值&#39,
%算法步长delta=0,l), subplot(2, xs=zeros(1,1,
%衍生时间while tnow&lt,,i-2), % 得到左侧的值
dx=x_deltap-x_deltam,3]),[-3,迭代值&#39, tausave(i)=tau, tau=0,b,&#39,1,2), xlabel(&#39, xs=zeros(1,
我有更好的答案
按默认排序
之前必须要给l赋一个值,你的l没有赋值,
没有初值。
I m n都没有初始化。
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 matlab循环语句 的文章

 

随机推荐