大家好!!
我在编程中碰到一个问题,是关于非符号~的
这是一个simulink模型中的s函数:
function sys=mdlOutputs(t,x,u)
 %输入u1为Tab时间内v1作用时间;u2为Tab时间内v2作用时间;u3为Tab零矢量;u4为Tac时间内v1作用时间;u5为Tac时间内v2作用时间; u6为Tac零矢量;u7为Tpwm时间
             
            h=0;   
  if (mod(t,u(7))<=0+u(3)/2)    %1
     h=0;
   elseif (mod(t,u(7))<=0+u(3)/2+u(1))   %3
        h=~h;
   elseif (mod(t,u(7))<=0+u(3)/2+u(1)+u(2))        %5
      h=~h;
  elseif (mod(t,u(7))<=u(1)+u(2)+u(3)+u(6)/2)  %9
      h=0;
 elseif (mod(t,u(7))<=u(1)++u(2)+u(3)+u(6)/2+u(5))  %11
         h=~h;
 elseif (mod(t,u(7))<=u(1)++u(2)+u(3)+u(6)/2+u(4)+u(5))  %13
         h=~h;
 else        %7
     h=0;
  end
end
     sys=[h];             
运行结果是提示:
Output returned by S-function 'unit_pulse_synchronism' in block 'sparse_rectify_inverter_with_idealsimple/Subsystem2/S-Function3' during flag=3 call must be a real vector of length 1
如果将h=~h改成h=1或者h=0程序就可以运行
按道理matlab 中是可以将这种单变量看成bool变量的,小弟百思不得其解,请哪位高人赐教,小弟在此叩首谢过!!
我在编程中碰到的一个问题
											
 
											





