Giáo trình mathlab toàn tập - Chương 10

9 7 0
Giáo trình mathlab toàn tập - Chương 10

Đang tải... (xem toàn văn)

Thông tin tài liệu

thời gian MATLAB đ-a ra một số hàm thao tác về thời gian từ đó bạn có thể tính toán với ngày, giờ, in lịch và tìm kiến những ngày cụ thể. MATLAB chứa ngày và thời gian nh- một số có độ chính xác hai số sau dấu phẩy t-ợng tr-ng cho số ngày, bắt đầu bằng năm không. Ví dụ, mồng 1 tháng 1 năm 1997 tại lúc nửa đêm, nó đ-ợc t-ợng tr-ng bởi số 729391, và cùng một ngày nh-ng lúc buổi ch-a là 729391.5. Cấu trúc này có thể dễ dàng cho máy tính...

61 >> [a, b, c, d] = deal(C{1}, C{2}, C{3}, C{4}) a= How b= about c= this for a d= cell array of strings? Hàm char dùng để chuyển từ mảng tế bào sang mảng xâu: >> s = char(C) How about this for a cell array of strings? >> size(s) % Kết xâu với khoảng trống ans= 22 >> ss = char(C(1:2)) ss= How about >> size(ss) ans= §Ĩ chun ngợc lại mảng tế bào, ta dùng hàm cellstr: >> cellstr(s) ans= 'How' 'about' 'this for a' 'cell array of strings?' Hầu hết hàm xâu MATLAB làm việc với mảng xâu mảng tế bào Về mảng tế bào đợc trình bày rõ Chơng 19 chơng 10 thời gian MATLAB đa số hàm thao tác thời gian từ bạn tính toán với ngày, giờ, in lịch tìm kiến ngày cụ thể MATLAB chứa ngày thời gian nh số có độ xác hai số sau dấu phẩy tợng trng cho số ngày, bắt đầu năm không Ví dụ, mồng tháng năm 1997 lúc nửa đêm, đợc tợng trng sè 729391, vµ cïng mét ngµy nh−ng lóc bi ch−a lµ 729391.5 CÊu tróc nµy cã thĨ dƠ dµng cho máy tính xử lí, nhng khó diễn giải Do MATLAB cung cấp hàm trợ giúp chuyển đổi số xâu kí tự để thao tác với ngày thời gian 62 10.1 Ngày Hàm clock trả ngày chứa mảng Ví dụ: >> T = clock T= 1997 21 16 33 39.934708 Hµm now trả ngày thời gian nh số ngày quy ớc máy đơn giản số ngày >> t = now t= 729411.690045541 Cả hai kết kết có thông tin Hàm date trả lại ngày nh xâu theo mÉu: dd-mmm-yyyy >> date ans = 21-Jan-1997 10.2 Sù chuyển đổi kiểu Bạn chuyển số ngày xâu, sử dụng hàm datestr Cấu trúc hàm có dạng nh sau: datestr(date_number,format_spec) Sau trợ giúp help cho hàm datestr: >> help datestr DATESTR string representation of date DATESTR(D,DATEFORM) converts a serial data number D (as returned by DATENUM) into a date string The string is formatted according to the format number or string DATEFORM (see table below) By default, DATEFORM is 1, 16, or depending on whether D contains dates, times or both DATEFORM number DATEFORM string 'dd-mmm-yyyy HH:MM:SS' 'dd-mmm-yyyy' 'mm/dd/yy' 'mmm' 'm' 'mm' 'mm/dd' 'dd' Example 01-Mar-1995 15:45:17 01-Mar-1995 03/01/95 Mar M 03/01 63 10 11 12 13 14 16 17 18 'ddd' 'd' 'yyyy' 'yy' 'mmmyy' 'HH:MM:SS' 'HH:MM:SS PM' 'HH:MM' 'HH:MM PM' 'QQ-YY' 'QQ' Wed W 1995 95 Mar95 15:45:17 3:45:17 PM 15:45 3:45 PM Q1-96 Q1 vÝ dơ víi hµm datestr: >> datestr(t) ans= 21-Jan-1997 16: 33: 40 >> datestr(t,14) ans= 4: 33: 40 PM Hµm datenum hàm ngợc datestr Hàm chuyển xâu kí tự dạng ngày dùng mẫu datenum(str), số độc lập vector sang số dạng ngày, dïng mÉu: datenum(year, month, day) hc datenum(year, month, day, hour, minute, second) >> datenum('21-Jan-1997 16: 33: 40') ans= 729411.690045541 >> datenum(1997, 01, 21) ans= 729411 >> datenum(1997, 01, 21, 16, 33, 40) ans= 729411.690045541 Hàm datevec chuyển xâu kí tự dạng ngày (dùng datestr dạng 0, 1, 2, 6, 13, 14, 15, 16) số dạng ngày sang vector >> c = datevec('12/ 24/ 1984') c= 1984 12 24 0 >> [yr, mo, day, hr, nim, sec] = datevec('24-Dec-1984 yr= 1984 mo= 12 08: 22') 64 day= 24 hr= min= 22 sec= 10.3 Các hàm ngày Ngày tuần tìm từ xâu dạng ngày số dạng ngày, dùng hàm weekday, MATLAB sư dơng quy −íc Sunday = vµ Saturday = >> [d d= w] = weekday(728647) w= >> [d d= Mon w] = weekday('21-Dec-1994') w= Wed Ngày cuối tháng tìm hàm eomday Trong bắt buộc phải đa vào năm, tháng >> eomday(1996, 2) ans= 29 % 1996 năm MATLAB tạo lịch cho tháng bạn yêu cầu, hiển thị cửa sổ lệnh ®Ỉt chóng mét ma trËn 6x7 >> calendar('7/ 17/ 95') Jul 1995 S M Tu W Th 0 0 10 11 12 13 16 17 18 19 20 23 24 25 26 27 30 31 0 >> S = calendar(1994, 12) S = 0 0 11 12 13 14 15 16 18 19 20 21 22 23 25 26 27 28 29 30 0 0 0 F 14 21 28 10 17 24 31 S 15 22 29 65 10.4 Các hàm thời gian Lệnh tic toc đợc dùng thời gian tÝnh to¸n: >> tic; plot(rand(5)); toc elapsed_time = 0.2200 H×nh 10.1 >> tic; plot(rand(5)); toc elapsed_time = 0.1700 66 Hình 10.2 Chú ý khác hàm thời gian elapsed_time lệnh plot, lệnh plot thứ hai nhanh MATLAB đà tạo hình dáng cửa sổ dịch hàm cần thiết vào ô nhớ Hàm cputime trả tổng số thời gian CPU (Central Processing Unit), tÝnh theo gi©y, thêi gian MATLAB đà dùng từ đợc khởi động lên Hàm etime tính khoảng thời gian hai vector thời gian Các vector phải vector hàng gồm phần tư, gièng nh− kÕt qu¶ tr¶ vỊ lƯnh clock datevec Tại thời gian etime không chuyển tháng năm Tất hàm sử dụng để tính toán thời gian >> t0 = cputime; pause(5); cputime - t0 ans = >> t1 = clock; pause(2); etime(clock,t1) ans = 2.0400 B¹n h·y xem help MATLAB CD để tìm hiểu thêm hàm 10.5 Vẽ đồ thị với hàm ngày thời gian Đôi có ích để vẽ đồ thị dùng xâu ngày thời gian cho một nhÃn Hàm datetick tự động với công việc Nếu đồ thị đợc vẽ, dùng số ngày cho một trục, hàm datetick viết nhÃn cho điểm đánh dấu VÝ dơ sau vÏ h×nh 10.3: >> t = (1900:10:1990)'; >> p = [75.995; 91.972; 105.771; 123.203; 131.669; 150.697; 179.323; 203.212; 226.505; 249.633]; 67 >> plot(datenum(t,1,1),p) >> datetick('x','yyyy') % use 4-digit year on the x-axis >> title('Population by year') Chóng ta tạo biểu đồ cột công ty bán hàng bán từ tháng 11 năm 1994 đến tháng 12 năm 1995 (Hình 10.4): >> >> >> >> >> >> >> y = [1994 1994 1995*ones(1,12)]'; m = [11 12 (1:12)]'; s=[1.1 1.3 1.2 1.4 16 1.5 1.7 1.6 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') H×nh 10.3 68 H×nh 10.4 VÝ dơ: T×m thứ sáu ngày 13 Bây đà đợc giíi thiƯu c¸c lƯnh vỊ thêi gian, h·y dïng chóng để tạo số hàm có ích Nếu bạn ngời cẩn thận, bạn muốn biết thứ sáu ngày 13 xảy Hàm M_file cho bạn thông tin function m=friday(start) % FRIDAY Date of the next Friday the 13th % FRIDAY display the next occurrence of Friday the % 13th % FRIDAY(START) start the search at the date % specified by START % M=FRIDAY return the date number of the next Friday % the 13th if nargin==0 start=now; % use the current date if none end % was supplied [yr,mo,da]=datevec(start); da=da+6-weekday(start); % Start with the Friday in % this week start=datenum(yr,mo,da,0,0,0); while [yr,mo,da]=datevec(start); if (weekday(start)==6)&(da==13) break; 69 end start=datenum(start+7); % skip to the next Friday end if nargout==0 disp(['Friday,'datestr(start,1)]) % Display the % the result else m=start; % or return the resulting date end % number Sau chạy chơng trình ta đợc kết quả: >> friday Friday,13-Aug-1999 Nếu bạn muốn đợc cảnh báo cho toàn năm, xem hàm fridays: function F=fridays(ynum) % FRIDAY List the Friday the 13ths in the year ynum % M=FRIDAY return the date numbers found % if nargin==0 [ynum dummy]=datevec(now); % use the current date if end % non was supplied MM=[]; trynum=datenum(ynum,1,13,0,0,0); % check January 13 first trynum=friday(trynum); % find the first one [tyr dummy]=datevec(trynum); while tyr==ynum % May be there are more this year MM=[MM;trynum]; trynum=friday(trynum+7); % skip to the next week [tyr dummy]=datevec(trynum); end if nargout==0 disp('Fridays'); % Display the results disp(datestr(MM,1)) % Display the result else F=MM; % or return the vector of end % date number -oOo - chơng 11 VòNG LặP ĐIềU KHIểN Các ngôn ngữ lập trình máy tính có khả lập trình đề cập đến đặc điểm cho phép bạn điều khiển vòng lặp câu lệnh dựa cấu trúc Nếu bạn đà tõng sư dơng ... number DATEFORM string 'dd-mmm-yyyy HH:MM:SS' 'dd-mmm-yyyy' 'mm/dd/yy' 'mmm' 'm' 'mm' 'mm/dd' 'dd' Example 01-Mar-1995 15:45:17 01-Mar-1995 03/01/95 Mar M 03/01 63 10 11 12 13 14 16 17 18 'ddd'... 729411.690045541 Cả hai kết kết có thông tin Hàm date trả lại ngày nh xâu theo mẫu: dd-mmm-yyyy >> date ans = 21-Jan-1997 10. 2 Sự chuyển đổi kiểu Bạn chuyển số ngày xâu, sử dụng hàm datestr Cấu trúc hàm... 'HH:MM:SS PM' 'HH:MM' 'HH:MM PM' 'QQ-YY' 'QQ' Wed W 1995 95 Mar95 15:45:17 3:45:17 PM 15:45 3:45 PM Q 1-9 6 Q1 vÝ dơ víi hµm datestr: >> datestr(t) ans= 21-Jan-1997 16: 33: 40 >> datestr(t,14) ans=

Ngày đăng: 11/05/2021, 04:01

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan