MATLAB程序调试问题: while x(i)<=2 | Error: Illegal use of reserved keyword "while".

>> N=10000;
c=3e8;
e=1.6e-19;
me=9.1e-31;
re=e^2/(me*c^2);
theta=0;
t=0;
yo=normrnd(0,1,1,10000);
hv=normrnd(10*e,e,1,10000);
xe=1+rand(1,10000);
ye=rand(1,10000);
vxe=normrnd(2,0.5,1,10000);
vye=normrnd(2,0.5,1,10000);
y=yo+c*t*sin(theta) ;
px=hv/c*cos(theta);
py=hv/c*sin(theta);
x=c*t*cos(theta);
pxe=me*vxe;
pye=me*vye;
sym t;
for i=1:10000
{
while x(i)<=2
{
for j=1:10000
{
if (sqrt((x(i)-xe(j))^2+(y(i)-ye(j))^2)<=re & (px(i)*(x(i)-xe(j))+py(i)*(y(i)-ye(j))>0))
{
syms hvp(10000),thetap,pxep(10000),pyep(10000);
[hvp(i),thetap,pxep(j),pyep(j)]=solve('hv(i)+(pxe(j)^2+pye(j)^2)/(2*me)= hvp(i)+(pxep(j)^2+pyep(j)^2)/(2*me)','hv(i)/c*cos(theta)+pxe(j)=hvp(i)/c*cos(thetap)+pxep(j)','hv(i)/c* sin(theta)+pye(j)=hvp(i)/c*sin(thetap)+pyep(j)','(hvp(i)/c*[cos(thetap),sin(thetap)]-hv(i)/c*[cos(theta),sin(theta)])./norm(hvp(i)/c*[cos(thetap),sin(thetap)]-hv(i)/c*[cos(theta),sin(theta)])=[x(i)-xe(j),y(i)-ye(j)]/norm([x-xe(j),y(i)-ye(j)])','hvp(i)','thetap','pxep(j)','pyep(j)')
hv(i)=hvp(i);
theta=thetap;
pxe(j)=pxep(j);
pye(j)=pyep(j);
}
end
}
end
t=t+1e-12;
}
end
t=0;
}
end
while x(i)<=2
|
Error: Illegal use of reserved keyword "while".

第1个回答  2013-07-04
N=10000;
c=3e8;
e=1.6e-19;
me=9.1e-31;
re=e^2/(me*c^2);
theta=0;
t=0;
yo=normrnd(0,1,1,10000);
hv=normrnd(10*e,e,1,10000);
xe=1+rand(1,10000);
ye=rand(1,10000);
vxe=normrnd(2,0.5,1,10000);
vye=normrnd(2,0.5,1,10000);
y=yo+c*t*sin(theta) ;
px=hv/c*cos(theta);
py=hv/c*sin(theta);
x=c*t*cos(theta);
pxe=me*vxe;
pye=me*vye;
sym t;
for i=1:10000

while x(i)<=2

for j=1:10000

if (sqrt((x(i)-xe(j))^2+(y(i)-ye(j))^2)<=re & (px(i)*(x(i)-xe(j))+py(i)*(y(i)-ye(j))>0))

syms hvp(10000),thetap,pxep(10000),pyep(10000);
[hvp(i),thetap,pxep(j),pyep(j)]=solve('hv(i)+(pxe(j)^2+pye(j)^2)/(2*me)= hvp(i)+(pxep(j)^2+pyep(j)^2)/(2*me)','hv(i)/c*cos(theta)+pxe(j)=hvp(i)/c*cos(thetap)+pxep(j)','hv(i)/c* sin(theta)+pye(j)=hvp(i)/c*sin(thetap)+pyep(j)','(hvp(i)/c*[cos(thetap),sin(thetap)]-hv(i)/c*[cos(theta),sin(theta)])./norm(hvp(i)/c*[cos(thetap),sin(thetap)]-hv(i)/c*[cos(theta),sin(theta)])=[x(i)-xe(j),y(i)-ye(j)]/norm([x-xe(j),y(i)-ye(j)])','hvp(i)','thetap','pxep(j)','pyep(j)')
hv(i)=hvp(i);
theta=thetap;
pxe(j)=pxep(j);
pye(j)=pyep(j);

end

end
t=t+1e-12;

end
t=0;

end
% while x(i)<=2

你需要把那些括号全都去掉才行本回答被提问者采纳
第2个回答  2013-07-04
matlab编程的时候循环体、分支结构等都不是用花括号区分的,而是用
while....end
for...end
if...end
等进行区分,和其他语言不大一样,你要小心。

...Error: Illegal use of reserved keyword "while".
e=1.6e-19;me=9.1e-31;re=e^2\/(me*c^2);theta=0;t=0;yo=normrnd(0,1,1,10000);hv=normrnd(10*e,e,1,10000);xe=1+rand(1,10000);ye=rand(1,10000);vxe=normrnd(2,0.5,1,10000);vye=normrnd(2,0.5,1,10000);y=yo+c*t*sin(theta) ;px=hv\/c*cos(theta);py=hv...

...程序运行显示Illegal use of reserved keyword "function"._百度知 ...
while w2<w1 %主动盘角速度大于从动盘角速度循环继续 if t<0.2 Mm=Mm(t+h);a1=a1_1; %a1_1要有参数的,改成a1_1(t,w1)之类的 w1=w1+a1*h;a2=a2_1; %同上 w2=w2+a2*h;else Mm=beta*TN;a1=a1_2; % 同上 w1=w1+a1*h;a2=a2_2; %同上 w2=w2+a2*h;end 另外,看...

...嵌套函数提示Illegal use of reserved keyword "function",求解啊...
你的程序很乱,很难看明白 不过有几个明显错误 1 定义函数行不用分号结尾 function [x,y]=ILp(f,G,h,Geq,heq,lb,ub,x,id,options);function ftemp=IntLP(vlb,vub);这两句后边的分号都不应该有 2 end后不用分号,你的很多end语句后边都有分号,这是多余的 3 if else end语句逻辑混乱,可...

...end | Error: Illegal use of reserved keyword "end".”为什么啊...
从你的程序看if,end,应该是配套的,你试试在M文件中把程序完整写出来,在粘贴在command window,我上次也出现这个问题,前面部分是粘贴的,后面在运行时输入end,就报错。写完整再粘贴就可以了。

matlab CRC代码 ​错误是:Illegal use of reserved keyword "if".
判断函数crc输入的形参是否为0,如果为0 则 msg = [0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 ];if应该在下一行吧;也就是说函数可以通过调用时是否有参数,参数个数多少,执行不同的程序

matlab语法出问题了Error: Illegal use of reserved keyword "if".
等号之间不能有空格

用MATLAB照书上代码打后提示:"错误: 此上下文中不允许函数定义."
1、打开编译器,在命令行输入edit打开。2、输入Function代表此文件是函数文件。3、如果有返回值在等号的左边输入,多个返回值用中括号。4、等号右面是函数名加括号,括号内是参数。5、使用%注释,注释的第一行是说明函数的功能。6、传入两个点的坐标,之后计算两点的距离,传给返回值y。7、保存文件,保存的...

求大神解答这个程序在MATLAB中为什么显示为无效字符
检查一下中英文字符或者不必要的空格 代码是正确的,运行结果如下:

在MATLAB中运行程序后出现:Error: Missing variable or function,该什么...
文件名和路径是不是不合要求。把文件放在根目录,比如c:\\,文件名用英文字母开头,比如 func1.m 如果一条语句没有写完,要换行写的话,在行结束的地方加三个点:...比如:111111 ...+1

在matlab命令窗口调用函数时总是出现未定义
你把x(i) 改成x.(i)或选x(i). 试试!

相似回答