cdwxg 发表于 2007-5-12 22:24

mdloutputs里面的程序的错误

franny4611 发表于 2007-5-12 22:28

模型怎么给你?

spare 发表于 2007-5-12 22:30

回复 #15 franny4611 的帖子

肯定错误
因为你的程序应该没有办法启动
刚开始输入都是0,所以你的if都不成立啊

cdwxg 发表于 2007-5-12 22:33

原帖由 franny4611 于 2007-5-12 22:28 发表 http://forum.vibunion.com/forum/images/common/back.gif
模型怎么给你?
作为附件上传到该帖子上就可以了,你可以编辑你的这个帖子的楼主位置,添加附件就可以了哈主要你传上后很多人都可以看
我不一定能够给你解决,但有大家的嘛。
你自己也要去思考。
你可以看下help里面的关于s函数的注释,或许对你有帮助

franny4611 发表于 2007-5-12 22:35

现在传不了了,提示离发贴的时间太长,其实这根本没什么模型的,我就是想验证这个s 函数

spare 发表于 2007-5-12 22:37

回复 #20 franny4611 的帖子

你的条件假设不能包含所有的情况,所以刚开始就是错误的,没有办法启动这个程序,你试着改一下,要把所有可能出现的情况都包含进去呢

franny4611 发表于 2007-5-12 22:38

我设了相位了的,而且按照程序的思路,输入为0也也有输出的

cdwxg 发表于 2007-5-12 22:38

原帖由 spare 于 2007-5-12 22:30 发表 http://forum.vibunion.com/forum/images/common/back.gif
肯定错误
因为你的程序应该没有办法启动
刚开始输入都是0,所以你的if都不成立啊
恩 ,总感觉你的输出函数没有完全概括所有情况
但也不知道是否是这些原因引起的错误,但现在只能一个一个地去试了

[ 本帖最后由 cdwxg 于 2007-5-12 22:40 编辑 ]

franny4611 发表于 2007-5-12 22:40

嗯,我改一下程序试试,顺便问一下,matlab里if语句能多重嵌套吗?比如if -else if-else if-else

[ 本帖最后由 cdwxg 于 2007-5-12 22:42 编辑 ]

cdwxg 发表于 2007-5-12 22:42

原帖由 franny4611 于 2007-5-12 22:40 发表 http://forum.vibunion.com/forum/images/common/back.gif
嗯,我改一下程序试试,顺便问一下,matlab里if语句能多重嵌套吗?比如if -else if-else if-else
可以,如
if(u(1)>0)
    if(u(2)/u(1)<1/sqrt(3)&&u(2)/u(1)>-1/sqrt(3))
      sys=1;
    else
    if(u(2)/u(1)>1/sqrt(3))
      sys=2;
    else
         sys=6;(这里地if我删掉了,但是这个做法会加入一些情况,所以跟你原来表达地不一样,所以你还是象下面那里加个if就一样了)
    end
if(u(1)<0)
    if(u(2)/u(1)<-1/sqrt(3))
      sys=3;
    else
    if(u(2)/u(1)<1/sqrt(3)&&u(2)/u(1)>-1/sqrt(3))
      sys=4;
    else
    if(u(2)/u(1)>1/sqrt(3))
      sys=5;
   
    end

franny4611 发表于 2007-5-12 22:53

if(u(1)>0)
    if(u(2)/u(1)<=1/sqrt(3)&&u(2)/u(1)>=-1/sqrt(3))
      sys=1;
      
   else if(u(2)/u(1)>1/sqrt(3))
      sys=2;
   
   else %if(u(2)/u(1)<-1/sqrt(3))
      sys=6;
    end
end
   
if(u(1)<0)
    if(u(2)/u(1)<-1/sqrt(3))
      sys=3;
      
   else if(u(2)/u(1)<=1/sqrt(3)&&u(2)/u(1)>=-1/sqrt(3))
      sys=4;
      
    else %if(u(2)/u(1)>1/sqrt(3))
      sys=5;
    end
end
   
if(u(1)==0)
      if(u(2)>0)
            sys=3;
      else
            sys=6;
      end
    end
改成这样,报错Error: File: d:\MATLAB6p5\work\area_sel.m Line: 74 Column: 1
"end" expected, "End of Input" found

cdwxg 发表于 2007-5-12 23:02

原帖由 franny4611 于 2007-5-12 22:53 发表 http://forum.vibunion.com/forum/images/common/back.gif
if(u(1)>0)
    if(u(2)/u(1)=-1/sqrt(3))
      sys=1;
      
   else if(u(2)/u(1)>1/sqrt(3))
      sys=2;
   
   else %if(u(2)/u(1)
我这里的错误是
??? Error: File: Untitled2.m Line: 26 Column: 1
This statement is incomplete.
你只是改了我说的else的问题,但程序本身的逻辑问题好像还有。

franny4611 发表于 2007-5-12 23:08

我觉得逻辑应该没什么问题了
你那边的错误可能是因为少了end

cdwxg 发表于 2007-5-12 23:08

说是没写完,是不是X的原因,我也搞不明白了。。。。。看看大家呢?最烦程序:lol

franny4611 发表于 2007-5-12 23:18

唉,今天都快被搞疯了。也找不到比较好的例子
页: 1 [2] 3
查看完整版本: s函数的问题