学渣想变强 发表于 2020-6-28 09:11:43

关于matlab代码的一点问题

我想写一个代码,当输入变量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


smileland 发表于 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

学渣想变强 发表于 2020-7-2 16:28:44

smileland 发表于 2020-6-28 21:55
由于你没有描述输入的第一个数若在205和190中间会发生什么,那首先我得认为你的第一个输入必须是>205或者 2 ...

谢谢您的回复,帮助很大!
页: [1]
查看完整版本: 关于matlab代码的一点问题