Tải bản đầy đủ (.pdf) (4 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (75.89 KB, 4 trang )

52
6.3246
4.4721
vphase =
123.6901
108.4349
63.4349

Hình 7.2

---------------------oOo---------------------

chơng 8
các phép tính LOGIC Và QUAN Hệ
Thêm vào những toán tử truyền thống, MATLAB cung cấp toán tử logic và quan hệ. Bạn có thể
quen thuộc với những phép toán này, nếu bạn đà làm quen với các ngôn ngữ lập trình khác. Mục đích
của những toán tử và hàm này là để trả lời câu hỏi True_False (đúng_sai).
Đối với các số thì trong toán tử logic và quan hệ quy định các số khác không là True còn số không
là False. Kết quả của phép toán logic và quan hệ đa ra là 1 cho True, 0 cho False.


53
8.1 To¸n tư quan hƯ
To¸n tư quan hƯ MATLAB bao gồm tất cả các phép so sánh:
Toán tử quan hệ
<
<=
>
>=
==
~=



ý nghĩa
nhỏ hơn
nhỏ hơn hoặc bằng
lớn hơn
lớn hơn hoặc bằng
bằng
không bằng

Toán tử quan hệ MATLAB có thể dùng để so sánh hai mảng có cùng kích cỡ hoặc so sánh một
mảng với một số đơn. Trong trờng hợp thứ hai, số đơn so sánh với tất cả các phần tử của m¶ng, kÕt
qu¶ tr¶ vỊ gièng nh− kÝch cì cđa m¶ng. VÝ dô:
>> A = 1:9, B = 9 - A
A=
1
2
3
4
5
6
7
8
B=
8
7
6
5
4
3
2

1
>> tf = A>4
tf=
0
0
0
0
1
1
1
1
1
tìm kiếm các phần tử của A mà lớn hơn 4. Kết quả bằng 0 khi A 4, bằng 1 khi A>4.
>> tf = (A==B)
tf=
0
0
0

0

0

0

0

0

9

0

0

Tìm kiếm các phần tư cđa A mµ b»ng víi B. Chó ý sù khác nhau giữa = và == dùng để so sánh hai
biến và trả về 1 khi chúng bằng nhau, 0 khi chúng khác nhau; = dùng để gán kết quả ®a ra cđa to¸n tư
cho mét biÕn.
>> tf = B - (A>2)
tf=
8
7
5
4
3
2
1
0
-1
Tìm các phần tử A>2 và bị trừ bởi vector B. Ví dụ này chỉ ra rằng kết quả đa ra của toán tử logic là
một mảng số bao gồm các số không và một, chúng cũng có thể dïng trong c¸c phÐp to¸n sè häc.
>> B = B + (B==0)*eps
B=
Columns 1 through 7
8.0000 7.0000
6.0000
5.0000 4.0000
3.0000
2.0000
Columns 8 through 9
1.0000 0.0000

Ví dụ trên đa ra cách thay thế các phần tử của B mà trùng với không bằng số đặc biệt của MATLAB
là eps, có giá trị xấp xỉ 2.2e-16. Cách thay thế này đôi khi có ích là tránh trờng hợp chia cho số
không nh ví dụ sau:
>> x = (-3:3)/3


54
-1.0000 -0.6667
-0.3333
0
0.3333
0.6667
1.0000
>> sin(x)./x
Warning: Divide by zero
ans=
0.8415
0.9276
0.9816
NaN
0.9816
0.9276
0.8415
Tính toán hàm sin(x)/ x đa ra một cảnh báo vì phần tử thứ t bằng không, sin(0)/ 0 không đợc
định nghĩa, MATLAB trả lại NaN ( nghĩa là không phải là một số) tại vị trí đó trong kết quả. Thử lại
ví dụ trên, sau khi thay thế phần tử có giá trị bằng kh«ng b»ng sè eps:
>> x = x + (x==0)*eps;
>> sin(x)/x
ans=
0.8415 0.9276

0.9816

1.0000

0.9816

0.9276

0.8415

Bây giờ sin(x)/ x tại x = 0 đa ra kết quả giới hạn chính xác.
8.2 Toán tử Logic
Toán tử logic cung cấp một cách diễn đạt mối quan hệ phủ định hay tổ hợp. Toán tử logic
MATLAB bao gồm:
Toán tử logic
&
|
~

ý nghĩa
AND
OR
NOT

Một vài ví dụ về dùng toán tử logic:
>> A = 1:9; B = 9 - A;
>> tf = A>4
tf=
0
0

0
0
1
1
Tìm kiếm các phần tử của A mà lớn hơn 4.

1

1

1

>> tf = ~(A>4)
1
1
1
0
0
0
0
0
phủ định của kết quả, tơng đơng với vị trí nào bằng không thay bằng một và ngợc lại.
>> tf = (A>2)&(A<6)
tf=
0
0
1
1

1


0

0

0

0

Trả lại một tại những vị trí mà phần tử của A lớn hơn 2 và nhỏ hơn 6.
8.3 Các hàm logic và hàm quan hệ
Thêm vào những toán tử logic và toán tử quan hệ đề cập đến ở trên, MATLAB cung cấp các hàm
logic và quan hệ khác dới đây:
Các hàm logic và hàm quan hệ khác
xor(x,y)
Toán tử hoặc. Trả lại giá trị 1 khi x hoặc y khác không (True), giá trị 0 khi c¶ x


55

any(x).
all(x)

và cùng bằng không (False) hoặc cùng khác không (True)
Trả lại 1 nếu bất cứ phần tử nào trong vector x khác không. Trả lại 1 cho mỗi cột
trong ma trận x mà có các phần tử khác không.
Trả lại 1 nếu tất cả các phần tử của vector x khác không. Trả lại 1 cho mỗi cột
trong ma trận x mà tất cả các phần tử khác không.

MATLAB còn cung cấp rất nhiều các hàm kiểm tra cho sự tồn tại của các giá trị đặc biệt hoặc

điều kiện và trả lại những kết quả là giá trị logic.
Các hµm kiĨm tra
isa(X, ‘name’)
iscell(X)
iscellstr(X)
ischar(S)
isempty(X)
isequal(A, B)
isfield(S, ‘name’)
isfinite(X)
isglobal(X)
ishandle(h)
ishold
isiee
isinf(X)
isletter(S)
islogical(X)
ismember(A, B)
isnan(X)
isnumeric(X)
isppc
isprime(X)
isreal(X)
isspace(S)
issparse(A)
isstruct(S)
isstudent
isunix
isvms


True nÕu X cã lớp đối tợng là name
True nếu đối số là mảng phần tử.
True nếu đối số là mảng phần tử của các xâu.
True nếu đối số là xâu kí tự.
True nếu đối số là rỗng.
True nếu A và B giống nhau.
True nếu namelà một trờng của cấu trúc S.
True khi các phần tử có hạn.
True khi đối số là biến toàn cục.
True khi đối số là sự điều khiển đối tợng hợp lý
True nếu đồ thị hiện tại giữ trạng thái ON.
True nÕu m¸y tÝnh thùc hiƯn phÐp sè häc IEEE
True tại những phần tử vô cùng
True khi các phần tử thuộc bảng chữ cái.
True khi đối số là mảng logic
True tại những vị trí mà phần tử của A và B trùng nhau
True khi các phần tử là không xác định (NaN)
True khi đối số là mảng số
True cho Macintosh với bộ xử lý PowerPC
True khi các phần tử là số nguyên tố
True khi đối số không có phần ảo
True khi các phần tử là kí tự trắng
True nếu đối số là ma trận Sparse
True nếu đối số là một cÊu tróc
True nÕu Student Edition cđa MATLAB
True nÕu m¸y tÝnh là UNIX
True nếu máy tính là VMS
----------------------oOo--------------------

chơng 9

VĂN Bản
Sự tiện ích của MATLAB là xử lý với các con số. Tuy nhiên chúng ta đà nhiều lần đề cập đến thao tác
với văn bản (text), nh khi đa nhÃn và tiêu đề vào trong đồ thị. Trong MATLAB biến text đợc dùng
đến nh là xâu kí tự, hoặc đơn giản là các xâu.
9.1 Xâu kí tự
Xâu kí tự trong MATLAB là mảng của các giá trị ASCII mà quy ớc của nó là các kí tự.



×