gongdadeniupai 发表于 2007-12-29 00:06

关于if elseif end循环

我编了一个用if elseif end 求解的程序,其中有好几个elseif,但为什么前面的elseif 条件明明判断为假还要继续执行,而不执行后面的elseif,想了很久没有想出来,请高人赐教,程序如下:
eksiton=
=size(eksiton);
sigmac=zeros(size(eksiton));
for i=1:v1;
    for j=1:v2;
            if eksiton(i,j)>0.00015
                sigmac(i,j)=0
            elseif 0>eksiton(i,j)>=eksitonc
                sigmac(i,j)=fc*(afa*(eksiton(i,j)/eksitonc)+(3-2*afa)*(eksiton(i,j)/eksitonc)^2+(afa-2)*(eksiton(i,j)/eksitonc)^3)
            elseif eksitonc>eksiton(i,j)>=-3.3e-3
                sigmac(i,j)=fc*(eksiton(i,j)/eksitonc)/(afd*(eksiton(i,j)/eksitonc-1)^2+(eksiton(i,j)/eksitonc))
            elseif eksiton(i,j)==0
                sigmac(i,j)==0
             elseif 0<eksiton(i,j)<=eksitont
                sigmac(i,j)=ft*(1.2*(eksiton(i,j)/eksitont)-0.2*(eksiton(i,j)/eksitont)^6)
             elseif 0.00015>=eksiton(i,j)>eksitont
                sigmac(i,j)=ft*(eksiton(i,j)/eksitont)/(aft*(eksiton(i,j)/eksitont-1)^1.7+(eksiton(i,j)/eksitont))   
             elseif -3.3e-3>eksiton(i,j)
                disp('over')
            end
    end
end
         eksiton
         sigmac
%eksitonc=-1.64e-3,eksitont=0.081e-3

eight 发表于 2007-12-29 10:09

原帖由 gongdadeniupai 于 2007-12-29 00:06 发表 http://www.chinavib.com/forum/images/common/back.gif
我编了一个用if elseif end 求解的程序,其中有好几个elseif,但为什么前面的elseif 条件明明判断为假还要继续执行,而不执行后面的elseif,想了很久没有想出来,请高人赐教,程序如下:
eksiton=

根据我所学的编程语言(C、Matlab、VB、Delphi等),没有一个语言支持条件判断的语句中使用 a<x<b 这种表达。请先阅读一般的基础书,无论是 matlab 还是 c 语言

gdayang 发表于 2007-12-29 10:27

原帖由 eight 于 2007-12-29 10:09 发表 http://www.chinavib.com/forum/images/common/back.gif


根据我所学的编程语言(C、Matlab、VB、Delphi等),没有一个语言支持条件判断的语句中使用 a
支持!呵呵!

gongdadeniupai 发表于 2007-12-29 13:24

谢谢楼上的,根据你的意见,我已经成功运行了这个循环,我是新手,可能有时会犯一些基础性错误,我会抓紧补补的。

xjimm 发表于 2008-1-3 21:09

呵呵,基础是很重要的,很多东西不能想当然

kingjade 发表于 2008-1-4 15:57

学习学习,:@D :@D
页: [1]
查看完整版本: 关于if elseif end循环