گاهي اوقات شما در برنامه ها خود مي خواهيد با زمان دقيق و واقعي به حل مسئله خود بپردازيد و يا برنامه شما مطابق با زمان موجود شروع به انجام عملكرد مشخصي نمايد مثلا فرض كنيد كه يك رباط طراحي كرده ايد و مي خواهيد بازوهاي آن تابع زمان و موقعيت مشخص عملكرد خاصي را انجام دهد و يا برنامه اي که در نرم افزار متلب نوشته ايد كه بر اساس تاريخ و زمان همان روز عملكرد خاصي را انجام مي دهد و يا مي خواهيد دستور عمل براي دستگاهي بنويسيد كه بعد از ساعت مشخص يك ماده شيمائي را به محلول اضافه نمايد وهزاران مثال ديگر كه بيانگر نياز يك برنامه نويس يه دانش نحوه دخالت توابع زمان در برنامه هاي خود مي باشد در مطلب اين توابع پيش بيني گرديده وبطور گسترده در آن وجود دارد بطوريكه شما هرزمان كه مايل بوديد با يك سري توابع خاص مي توانيد زمان واقعي را وارد سيستم محاسباتي خود نمائيد . در اين فصل به معرفي تعدادي از اين توابع در نرم افزار متلب خواهيم پرداخت .
زمان جاري و تاريخ :
تابع clock به شما تارخ ، و زمان دقيق مطابق با تنظيمات كامپيوتر شما را براي شما اعلام مي كند ، براي ديدن نحوه عملكرد اين دستور را درصفحه command در نرم افزار متلب نوشته و اينتر را فشار دهيد ، خواهيد ديد :
t=clock
t =
2004 8 9 6 46 33.623
مي بینید كه سال ، ماه ، روز و ساعت و دقيقه و ثانيه اي را براي شما نشان مي دهد .
تابع now همين اطاعات را بصورت ساعت بيان مي كند :
now
ans =
7.3217e+005
تابع date در نرم افزار متلب تاريخ و ماه و سال را به شما بيان مي كند :
date
ans =
09-Aug-2004
تغيير فرمت :
با بكارگيري تابع datestr شما مي توانيد فرمت نمايش زمان را به دلخواه خود تغيير دهيد نحوه عملكرد اين دستور بصورت زير است :
str = datestr(DT,dateform)
str = datestr(DT,dateform,P)
مثال :
d1 = datenum('02-Oct-1996')
d1 =
729300
d2 = datestr(d1+10)
d2 =
12-Oct-1996
dv1 = datevec(d1)
dv1 =
1996 10 2 0 0 0
dv2 = datevec(d2)
dv2 =
1996 10 12 0 0 0
درجدول زير فرمت كاربرد تابع datestr بيان گرديده است :
DATEFORM number DATEFORM string Example
0 'dd-mmm-yyyy HH:MM:SS' 01-Mar-2000 15:45:17
1 'dd-mmm-yyyy' 01-Mar-2000
2 'mm/dd/yy' 03/01/00
3 'mmm' Mar
4 'm' M
5 'mm' 03
6 'mm/dd' 03/01
7 'dd' 01
8 'ddd' Wed
9 'd' W
10 'yyyy' 2000
11 'yy' 00
12 'mmmyy' Mar00
13 'HH:MM:SS' 15:45:17
14 'HH:MM:SS PM' 3:45:17 PM
15 'HH:MM' 15:45
16 'HH:MM PM' 3:45 PM
17 'QQ-YY' Q1-96
18 'QQ' Q1
19 'dd/mm' 01/03
20 'dd/mm/yy' 01/03/00
21 'mmm.dd,yyyy HH:MM:SS' Mar.01,2000 15:45:17
22 'mmm.dd,yyyy' Mar.01,2000
23 'mm/dd/yyyy' 03/01/2000
24 'dd/mm/yyyy' 01/03/2000
25 'yy/mm/dd' 00/03/01
26 'yyyy/mm/dd' 2000/03/01
27 'QQ-YYYY' Q1-1996
28 'mmmyyyy' Mar2000
29 (ISO 8601) 'yyyy-mm-dd' 2000-03-01
30 (ISO 8601) 'yyyymmddTHHMMSS' 20000301T154517
31 'yyyy-mm-dd HH:MM:SS' 2000-03-01 15:45:17
به چند مثال از نحوه بكارگيري جدول فوق توجه فرمائيد :
t=now;
>> datestr(t)
ans =
09-Aug-2004 07:08:04
>> datestr(t,2)
ans =
08/09/04
>> datestr(t,5)
ans =
08
>> datestr(t,14)
ans =
7:08:04 AM
>> datestr(t,31)
ans =
2004-08-09 07:08:04
تابع datenume برعكس تابع datestr در نرم افزار متلب عمل مي كند
مثال :
n = datenum('19-May-2004')
n =
732086
تابع datenum براي تبديل تاريخ از حالت رشته (string ) به عدد يا بردار مي باشد :
d1 = datenum('02-Oct-1996')
d1 =
729300
d2 = datestr(d1+10)
d2 =
12-Oct-1996
dv1 = datevec(d1)
dv1 =
1996 10 2 0 0 0
dv2 = datevec(d2)
dv2 =
1996 10 12 0 0 0
توابع تاريخ در نرم افزار متلب:
روز هفته را مي توانيد از دستور weekday بيابيد كه برايرروز يكشنبه عدد 1 و براي روز شنبه عدد 7 بيان مي شود :
[n,s] = weekday('19-Dec-2004')
n =
1
s =
Sun
با استفاده از دستور calendar ميتوانيد هر ماه از سال را كه بخواهيد بصورت تقويم روز شمار برايتان نمايش داده شود :calendar(2004,5)
May 2004
S M Tu W Th F S
0 0 0 0 0 0 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 0 0 0 0 0
مثال :
calendar('7/17/2004')
Jul 2004
S M Tu W Th F S
0 0 0 0 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
0 0 0 0 0 0 0
توابع تنظيم زمان ( سرعت ) در نرم افزار متلب :
توابع tic و toc به عنوان شروع كرنومتر و خاتمه آن مياشند بطوريكه مابين اين دو دستور هربرنامه اي كه نوشته شود زمان اجراي آنرا مي توانيد ببينيد :
tic;plot(rand(5));toc
elapsed_time =
1.704
tic;plot(rand(5));toc
elapsed_time =
0.063
در مثال فوق زمان ترسيم يك تابع مور نظر است كه در حالت اول 1.704 محاسبه گرديد در ترسيم دوباره همين تابع به علت اينكه از محاسبات قبلي استفاده شده پنجره ترسيم قبلا آماده بوده لذا مشاهده ميكنيد كه زمان اجرا به نحوه شگفت انگيزي كاهش يافته است .
cputime زمان پردازشگر مركزي (cpu ) كامپيوتر شما را بر حسب ثانيه اعلام مي كند .
cputime
ans =
7531.8
etime زمان مابين را اندازه مي گيرد .
ترسيمات :
گاهي اوقات ترسيم داده هاي زماني بر روي محورهاي مختصات بسيار سودمند مي تواند ياشد ، نمايش محورها بر حسب تقسيم بندي زماني را تا حد بالائي تابع datatic ممكن مي سازد و شما به دلخواه خود اين تابع را مجبور مي سازيد كه تقسيم بندي محورها را بر اساس تابع زماني مورد نظرتان انجام دهد :
مثال :
t = (2000:10:2090)'; % Time interval
p = [75.995 91.972 105.711 123.203 131.669 ...
150.697 179.323 203.212 226.505 249.633]'; % Population
plot(datenum(t,1,1),p) %Convert years to date numbers and plot
grid on
datetick('x',11) % Replace x-axis ticks with 2-digit year labels
بعد از اجرای برنامه در نرم افزار متلب ترسيم زير را خواهيد ديد :
مثال :
y=[2000 2000 2001*ones(1,12)]';
m=[11 12 (1:12)]';
s=[1.1 1.3 1.2 1.4 1.6 1.5 1.6 1.7 1.8 1.3 1.9 1.7 1.6 1.95]';
bar(datenum(y,m,1),s)
datetick('x','mmmyy')
ylabel('$ Million')
title('Monthly Sales')
بعد از اجرای برنامه در نرم افزار متلب خواهيد ديد :
دیدگاه خود را بنویسید