If-Else Statement of Time in Matlab -


hi made code in have input of computer time , date goes

    function [y, m, d, h, mn, s] = fcn()     coder.extrinsic('now');     coder.extrinsic('datevec');     y = 0;     m = 0;     d = 0;     h = 0;     mn = 0;     s = 0;    [y, m, d, h, mn, s] = datevec(now);    end 

it works fine. tried make block controller have output of 1 between 7am-5pm , output 0 if not within time , code goes this

   function y = fcn(u)     u = datestr(7:00am:5:00pm)   if u = datestr(7:00am:5:00pm)   y=1;   else    y=0;    end 

but error occured. please me figure out what's wrong. thank you

first of all, first function you've made built in matlab clock.

regarding problem, there plenty of possible approaches problem, think easiest 1 count seconds passed beginning of day.

using clock command vector of current time in format: [year month day hour minute second]. so, time passed beginning of day 3600*time(4) + 60*time(5) + time(6), i.e. 3600 times hours plus 60 times minutes , plus seconds. 00:00:00 7:00:00 7*3600 seconds passed. 00:00:00 17:00:00 17*3600 seconds passed. therefore, can compare these values find whether it's between 7am , 5pm or not:

function y = isbetween5amand7pm     time = clock;     current = 3600*time(4) + 60*time(5) + time(6); %seconds passed beginning of day until     morning = 3600*7; %seconds passed beginning of day until 7am     evening = 3600*17; %seconds passed beginning of day until 5pm     y = current > morning && current < evening; 

hope helps.


Comments

Popular posts from this blog

sublimetext3 - what keyboard shortcut is to comment/uncomment for this script tag in sublime -

java - No use of nillable="0" in SOAP Webservice -

ubuntu - Laravel 5.2 quickstart guide gives Not Found Error -