电力仿真论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: pscad atp VIP会员
新来朋友

cyj-ATP

fy030509

yoonae

fengxian

luzhiyuan

节度使

szg0933

Iris

YANG

柔直小白

messiliu10

ywwy

18720669717

qq954646921

suoybing

EE_EDTA

zcx

wuzhixiang

chj

玉面孟尝

13647319986

晚风吻尽荷花叶

吃不胖的王胖子

荔荔

zjzy8888

查看: 997|回复: 2

[提问] 关于matlab代码的一点问题

[复制链接]
会员网龄
3.9岁

TA在排名榜Top100

积分:暂未上榜

发帖:暂未上榜

在线:暂未上榜

该用户从未签到

4

主题

1

回帖

5

积分

新手上路

Rank: 1

积分
5
发表于 2020-6-28 09:11:43 | 显示全部楼层 |阅读模式

注册可看大图、可下载

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想写一个代码,当输入变量V大于205时,输出c=-1,直到输入变量小于190时,输出c变为1;之后输出c持续输出1,直到输入变量V大于205,输出c变为-1,以此循环。我写的这个只满足小于190时输出-1了,其余值时都输出1.想请教一下该怎么改一下啊
function c= fcn(V)
if (V<205&&V<190)
        c=1;
elseif (V==205)
            c=-1;
else
            c=-1;
end


回复

使用道具 举报

发表于 2020-6-28 21:55:31 | 显示全部楼层
由于你没有描述输入的第一个数若在205和190中间会发生什么,那首先我得认为你的第一个输入必须是>205或者<190的,你可以设置一个全局变量来表征状态。
function c = fcn(V)
    global state;%设置一个全局变量
    if V > 205
        state = 1;%若输入一个数是>205,则状态为1,只有当输入<190时才会改变状态位。
    end
    if V < 190
        state = 0;%若输入一个数是<190,则状态为1,只有当输入>205时才改变状态位。
    end
    if state == 1
        c = -1;
    end
    if state == 0
        c = 1;
    end
end
回复

使用道具 举报

会员网龄
3.9岁

TA在排名榜Top100

积分:暂未上榜

发帖:暂未上榜

在线:暂未上榜

该用户从未签到

4

主题

1

回帖

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2020-7-2 16:28:44 | 显示全部楼层
展开
smileland 发表于 2020-6-28 21:55
由于你没有描述输入的第一个数若在205和190中间会发生什么,那首先我得认为你的第一个输入必须是>205或者 2 ...

谢谢您的回复,帮助很大!
回复

使用道具 举报

发贴规则: 
1.严禁将帖子发至无关版面,请选择对应版块发贴,以维护论坛的系统性和整洁性。
2.提问题需要将问题描述清楚,涉及到仿真模型问题需要添加报错图片或描述,上传仿真模型效果更佳。
3.由于论坛的时效性不足,可以发帖后点击楼层下分享到:QQ好友和群快速得到关注。
4.保持和谐。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|电力仿真论坛

GMT+8, 2024-5-14 09:21 , Processed in 0.089305 second(s), 42 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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