Updatesofts.com Ebook Team
65
ans=
2 5
Để chuyển ngợc lại mảng tế bào, ta dùng hàm
cellstr
cellstrcellstr
cellstr
:
>> cellstr(s)
ans=
'How'
'about'
'this for a'
'cell array of strings?'
Hầu hết các hàm xâu trong MATLAB làm việc với cả mảng xâu hoặc mảng tế bào.
Về mảng tế bào sẽ đợc trình bày rõ hơn ở Chơng 19.
chơng 10
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 trng 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 trng bởi số 729391, và cùng một
ngày nhng lúc buổi cha là 729391.5. Cấu trúc này có thể dễ dàng cho máy tính xử lí, nh-
ng nó rất khó diễn giải. Do vậy MATLAB cung cấp các hàm trợ giúp chuyển đổi giữa số và
xâu kí tự và để thao tác với ngày và thời gian.
10.1 Ngày và giờ hiện tại
10.1 Ngày và giờ hiện tại10.1 Ngày và giờ hiện tại
10.1 Ngày và giờ hiện tại
Hàm
clock
clockclock
clock
trả về ngày và giờ hiện tại chứa trong một mảng. Ví dụ:
>> T = clock
T=
1997 1 21 16 33 39.934708
Hàm
now
nownow
now
trả về ngày và thời gian hiện tại nh số ngày quy ớc của máy hoặc đơn giản
là số ngày.
>> t = now
t=
729411.690045541
Cả hai kết kết quả ở trên có cùng một thông tin.
Hàm
date
date date
date
trả lại ngày hiện tại nh một xâu theo mẫu: dd-mmm-yyyy
>> date
ans =
21-Jan-1997
10.2 Sự chuyển đổi giữa các kiểu
10.2 Sự chuyển đổi giữa các kiểu10.2 Sự chuyển đổi giữa các kiểu
10.2 Sự chuyển đổi giữa các kiểu
Updatesofts.com Ebook Team
66
B¹n cã thÓ chuyÓn sè ngµy ra x©u, sö dông hµm
datestr
datestrdatestr
datestr
. CÊu tróc cña hµm nµy cã d¹ng
nh− sau:
datestr(date_number,format_spec).
Sau ®©y lµ trî gióp cña
help
helphelp
help
cho hµm
datestr
datestrdatestr
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 0 depending on whether D
contains
dates, times or both.
DATEFORM number DATEFORM string Example
0 'dd-mmm-yyyy HH:MM:SS' 01-Mar-1995
15:45:17
1 'dd-mmm-yyyy' 01-Mar-1995
2 'mm/dd/yy' 03/01/95
3 'mmm' Mar
4 'm' M
5 'mm' 3
6 'mm/dd' 03/01
7 'dd' 1
8 'ddd' Wed
9 'd' W
10 'yyyy' 1995
11 'yy' 95
12 'mmmyy' Mar95
13 'HH:MM:SS' 15:45:17
14 'HH:MM:SS PM' 3:45:17 PM
'HH:MM' 15:45
16 'HH:MM PM' 3:45 PM
17 'QQ-YY' Q1-96
18 'QQ' Q1
vÝ dô víi hµm
datestr
datestrdatestr
datestr
:
>> datestr(t)
ans=
21-Jan-1997 16: 33: 40
>> datestr(t,14)
ans=
4: 33: 40 PM
Updatesofts.com Ebook Team
67
Hàm
datenum
datenumdatenum
datenum
là hàm ngợc của
datestr
datestrdatestr
datestr
. Hàm này chuyển một xâu kí tự dạng ngày dùng
mẫu
datenum(
datenum(datenum(
datenum(str)
str)str)
str)
, hoặc một số độc lập hoặc một vector sang số dạng ngày, dùng mẫu:
datenum(year, month, day)
hoặc
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
datevec datevec
datevec
chuyển một xâu kí tự dạng ngày (dùng
datestr
datestrdatestr
datestr
dạng 0, 1, 2, 6, 13, 14,
15, hoặc 16) hoặc một số dạng ngày sang vector.
>> c = datevec('12/ 24/ 1984')
c=
1984 12 24 0 0 0
>> [yr, mo, day, hr, nim, sec] = datevec('24-Dec-1984 08: 22')
yr=
1984
mo=
12
day=
24
hr=
8
min=
22
sec=
0
10.3 Các hàm về ngày
10.3 Các hàm về ngày10.3 Các hàm về ngày
10.3 Các hàm về ngày
Ngày của tuần có thể tìm từ xâu dạng ngày hoặc số dạng ngày, dùng hàm
weekday
weekdayweekday
weekday
,
MATLAB sử dụng quy ớc Sunday = 1 và Saturday = 7.
>> [d w] = weekday(728647)
d=
2
w=
Mon
Updatesofts.com Ebook Team
68
>> [d w] = weekday('21-Dec-1994')
d=
4
w=
Wed
Ngày cuối tháng có thể tìm bằng hàm
eomday
eomday eomday
eomday
. Trong đó bắt buộc phải đa vào năm, tháng.
>> eomday(1996, 2) % 1996 là năm
ans=
29
MATLAB có thể tạo lịch cho bất cứ tháng nào bạn yêu cầu, và hiển thị nó trong cửa
sổ lệnh hoặc đặt chúng trong một ma trận 6x7.
>> calendar('7/ 17/ 95')
Jul 1995
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
>> S = calendar(1994, 12)
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
10.4 Các hàm về thời gian
10.4 Các hàm về thời gian10.4 Các hàm về thời gian
10.4 Các hàm về thời gian
Lệnh
tic
tic tic
tic
và
toc
toctoc
toc
có thể đợc dùng đối với thời gian trong tính toán:
>> tic; plot(rand(5)); toc
elapsed_time =
0.2200
Updatesofts.com Ebook Team
69
H×nh 10.1
>> tic; plot(rand(5)); toc
elapsed_time =
0.1700