声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: franny4611

s函数的问题

[复制链接]
发表于 2007-5-12 22:24 | 显示全部楼层
mdloutputs里面的程序的错误
回复 支持 反对
分享到:

使用道具 举报

 楼主| 发表于 2007-5-12 22:28 | 显示全部楼层
模型怎么给你?
发表于 2007-5-12 22:30 | 显示全部楼层

回复 #15 franny4611 的帖子

肯定错误
因为你的程序应该没有办法启动
刚开始输入都是0,所以你的if都不成立啊
发表于 2007-5-12 22:33 | 显示全部楼层

作为附件上传到该帖子上就可以了,你可以编辑你的这个帖子的楼主位置,添加附件就可以了哈主要你传上后很多人都可以看
我不一定能够给你解决,但有大家的嘛。
你自己也要去思考。
你可以看下help里面的关于s函数的注释,或许对你有帮助
 楼主| 发表于 2007-5-12 22:35 | 显示全部楼层
现在传不了了,提示离发贴的时间太长,其实这根本没什么模型的,我就是想验证这个s 函数
发表于 2007-5-12 22:37 | 显示全部楼层

回复 #20 franny4611 的帖子

你的条件假设不能包含所有的情况,所以刚开始就是错误的,没有办法启动这个程序,你试着改一下,要把所有可能出现的情况都包含进去呢
 楼主| 发表于 2007-5-12 22:38 | 显示全部楼层
我设了相位了的,而且按照程序的思路,输入为0也也有输出的
发表于 2007-5-12 22:38 | 显示全部楼层
原帖由 spare 于 2007-5-12 22:30 发表
肯定错误
因为你的程序应该没有办法启动
刚开始输入都是0,所以你的if都不成立啊

恩 ,总感觉你的输出函数没有完全概括所有情况
但也不知道是否是这些原因引起的错误,但现在只能一个一个地去试了

[ 本帖最后由 cdwxg 于 2007-5-12 22:40 编辑 ]
 楼主| 发表于 2007-5-12 22:40 | 显示全部楼层
嗯,我改一下程序试试,顺便问一下,matlab里if语句能多重嵌套吗?比如if -else if-else if-else

[ 本帖最后由 cdwxg 于 2007-5-12 22:42 编辑 ]
发表于 2007-5-12 22:42 | 显示全部楼层
原帖由 franny4611 于 2007-5-12 22:40 发表
嗯,我改一下程序试试,顺便问一下,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
 楼主| 发表于 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
发表于 2007-5-12 23:02 | 显示全部楼层
原帖由 franny4611 于 2007-5-12 22:53 发表
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的问题,但程序本身的逻辑问题好像还有。
 楼主| 发表于 2007-5-12 23:08 | 显示全部楼层
我觉得逻辑应该没什么问题了
你那边的错误可能是因为少了end
发表于 2007-5-12 23:08 | 显示全部楼层
说是没写完,是不是X的原因,我也搞不明白了。。。。。看看大家呢?最烦程序:lol
 楼主| 发表于 2007-5-12 23:18 | 显示全部楼层
唉,今天都快被搞疯了。也找不到比较好的例子
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 08:20 , Processed in 0.101929 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表