Bài giảng điện tử tin học Ứng dụng trong kỹ thuật địa chất và dầu khí
Tổng quan về MATLAB Các phép toán, biểu thức và hàm cơ bản Lập trình trong MATLAB Đồ họa cơ bản Cấu trúc chƣơng trình BÀI TẬP
Bạn đang xem trước 20 trang tài liệu Bài giảng điện tử tin học Ứng dụng trong kỹ thuật địa chất và dầu khí, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BÀI GIẢNG ĐIỆN TỬ
TIN HỌC ỨNG DỤNG
TRONG KỸ THUẬT ĐỊA CHẤT & DẦU KHÍ
Tác giả : ThS. Đỗ Quang Khánh
ThS. Bùi Tử An
Bộ môn : Khoan & Khai thác dầu khí
Copyright 2007
MATLAB
Copyright 2007
MATLAB 2
MATLAB CĂN BẢN
Tổng quan về MATLAB
Các phép toán, biểu thức và hàm cơ bản
Lập trình trong MATLAB
Đồ họa cơ bản
Cấu trúc chƣơng trình
BÀI TẬP
Copyright 2007
MATLAB 3
CÁC VẤN ĐỀ NÂNG CAO TRONG MATLAB
Symbolic trong MATLAB
Ma trận và đại số tuyến tính
Hàm số và phƣơng trình
Đồ họa nâng cao
Vấn đề tạo giao diện
BÀI TẬP
Copyright 2007
MATLAB 4
TỔNG QUAN VỀ MATLAB
MATLAB (Matrix Laboratory) là một ngôn ngữ thông dịch,
cho phép thực hiện nhanh chóng các giải thuật, hiển thị dữ
liệu (dƣới dạng đồ thị 2D, 3D, hình ảnh và thậm chí chuỗi
hình ảnh) và thực hiện các giao tiếp đồ họa dễ dàng.
Ƣu điểm:
Cung cấp một công cụ tính toán và lập trình bậc cao dễ
sử dụng, hiệu quả và thân thiện. SIMULINK giúp ngƣời
sử dụng thực hiện các bài toán mô hình hóa, mô phỏng
trên máy tính.
Có tính mở, các hàm và các toolbox không ngừng đƣợc
bổ sung theo sự phát triển của khoa học bởi chính The
Mathworks Ins và cả ngƣời sử dụng trên toàn thế giới
Có công cụ trợ giúp phong phú trực tuyến, trên mạng
hay các tài liệu dạng pdf.
Copyright 2007
MATLAB 5
Sức mạnh của MATLAB
Môi trƣờng phát triển: gồm các công cụ và tiện
nghi giúp viết chƣơng trình, sử dụng các hàm
Matlab và các file
Thƣ viện các hàm toán học của Matlab: Các
hàm sơ cấp: tổng, sin, tính số phức các
hàm phức tạp: Bessel, nghịch đảo ma trận,
tính trị riêng, biến đổi Fourier nhanh, wavelet
Ngôn ngữ Matlab: Các lệnh cao cấp xử lý ma
trận, lệnh rẻ nhánh, vòng lặp, xuất nhập, cấu
trúc dữ liệu, lập trình hƣớng đối tƣợng
Xử lý đồ họa: Hiển thị dữ liệu dạng đồ họa
2D, 3D, hoạt hình, xử lý ảnh và cả GUI
Copyright 2007
MATLAB 6
Sức mạnh của MATLAB (tt)
Thƣ viện API của Matlab: Cho phép liên kết các
chƣơng trình C và Fortran Các ngôn ngữ khác
có thể gọi các hàm dll đƣợc tạo bởi Matlab.
Các hộp công cụ (Toolbox): Tập hợp các hàm
Matlab đƣợc viết sẵn để giải quyết các vấn đề
thuộc các chuyên ngành khác nhau. Các toolbox
khiến cho Matlab có thể ứng dụng vào nhiều lĩnh
vực kỹ thuật khác nhau: Điện tử, Điều khiển tự
động, Kỹ thuật điện, Viễn thông, Cơ khí, Động
lực, Dầu khí, Địa chất, hóa học,
Copyright 2007
MATLAB 7
Các khái niệm cơ bản
Khi chạy chƣơng trình
MATLAB, thì cửa sổ
này sẽ xuất hiện
Cửa sổ lệnh
Cửa sổ không
gian làm việc
Cửa sổ lịch sử
lệnh
Copyright 2007
MATLAB 8
Các khái niệm cơ bản (tt)
Hoạt động trong MATLAB
Command window (cửa sổ lệnh)
− Dấu “>>” dùng để chạy lệnh, viết chƣơng trình, Chạy
chƣơng trình.
Command history window (cửa sổ lịch sử lệnh)
− Liệt kê tất cả các lệnh đã sử dụng trƣớc đó kèm theo
thời gian làm việc.
Current Directory (cửa sổ thƣ mục hiện tại)
− Cho biết thƣ mục hiện tại làm việc. Mặc định khi cài
MATLAB701\work (Version 7.01)
Workspace (cửa sổ không gian làm việc)
− Cho biết các biến đƣợc sử dụng trong chƣơng trình.
Copyright 2007
MATLAB 9
Các khái niệm cơ bản
Một số lệnh hệ thống
Lệnh Ý nghĩa
clc xóa cửa sổ lệnh
clf xóa cửa sổ đồ họa
help xem phần trợ giúp một số lệnh
quit, exit Thoát Matlab
Ctrl+c Dừng chƣơng trình
pause Ngừng tạm thời chƣơng trình
edit Gọi chƣơng trình soạn thảo type đọc
nội dung file.m
input Nhập dữ liệu từ bàn phím
demo Gọi chƣơng trình demo
echo on/off Tắt mở hiển thị các lệnh trong M-files
Copyright 2007
MATLAB 10
Các khái niệm cơ bản (tt)
CÁC TOÁN TỬ VÀ KÍ TỰ ĐẶC BIỆT
• plus (+) cộng
• uplus (+) Cộng unary
• minus ( - ) Trừ
• uminus (-) Trừ unary
• mtimes(. *) Nhân ma trận
• times (*) Nhân mảng
• mpower (^) lũy thừa ma trận
• power (. ^ ) lũy thừa mảng
• mldivide (\ ) Chia trái ma trận
• Mrdivide( /) Chia phải ma trận
• ldivide (.\ ) Chia trái mảng
• mdivide (./ ) Chia phải ma trận
• kron Sản phẩm cơ năng
Copyright 2007
MATLAB 11
Các khái niệm cơ bản (tt)
Toán tử quan hệ
• eq (== ) Bằng
• ne ( ~= ) Không bằng
• lt (< ) Nhỏ hơn
• gt (>) Lớn hơn
• le (<= ) Nhỏ hơn hoặc bằng
• ge (>= ) Lớn hơn hoặc bằng
Copyright 2007
MATLAB 12
Các khái niệm cơ bản (tt)
Toán tử logic
• and (&) Logic và
• or ( | ) Logic hoặc
• not ( ~ ) Logic phủ định
• xor Logic hoặc phủ định
• any True nếu mọi phần tử của vector
khác không.
• all True nếu tất cả các phần tử khác
không
Copyright 2007
MATLAB 13
Các khái niệm cơ bản (tt)
Các kí tự đặc biệt
: Dấu hai chấm
() Dấu ngoặc đơn
[ ] Dấu ngoặc vuông
{ } Dấu ngoặc nhọn
. Dấu thập phân
. Truy nhập cấu cấu trúc trƣờng
.. Thƣ mục mẹ
... Dấu tiếp tục
, Dấu phẩy
; Dấu chấm phẩy
% Dấu chú thích
Copyright 2007
MATLAB 14
Các khái niệm cơ bản (tt)
% Dấu chú thích
! Liên quan câu lệnh của hệ điều
hành
= Gán
„ Nhảy
transpose(.‟) Chuyển vị
ctranspose(„ ) Chuyển vị số phức liên hợp
horzcat [, ] Ghép chuỗi theo chiều ngang
vertcat[; ] Ghép chuỗi theo chiều đứng
subsasgn Gán subscripted
bsref Tham chiếu subscripted
subsindex Chỉ số subscripted
Copyright 2007
MATLAB 15
Các khái niệm cơ bản (tt)
BIẾN
Quy định về tên biến:
− Giống các ngôn ngữ khác, Matlab có những quy định về tên
biến phải là một từ, không chứa dấu cách, và phải tuân thủ
theo các quy tắc sau:
Có thể chứa nhiều nhất 31 kí tự, còn các kí tự sau kí tự
31 sẽ bị lờ đi.
Ví du: Thoi_gian_dong_cua_vuaximang100,
Tên biến bắt đầu phải là chữ cái, tiếp theo có thể là chữ
số, dấu gạch dƣới.
Thí dụ: Do_bien_thien, Heso, heso, Donhot,
donhot
Kí tự chấm “.” không đƣợc dùng vì nó có ý nghĩa đặc
biệt
Copyright 2007
MATLAB 16
BIẾN (tt)
Một số biến đƣợc đĩnh nghĩa trƣớc:
− 1/0
Warning: Divide by zero.
(Type "warning off MATLAB:divideByZero" to suppress this
warning.)
ans = Inf
− 0/0
Warning: Divide by zero.
(Type "warning off MATLAB:divideByZero" to suppress this
warning.)
ans = NaN
− Eps
ans = 2.2204e-016
Copyright 2007
MATLAB 17
Một số biến đƣợc định nghĩa trƣớc (tt)
Ý
Copyright 2007
MATLAB 18
Độ lớn của biến
− Xác định độ lớn hay chiều dài của biến vector cũng
nhƣ ma trận thông qua một số hàm sau đây:
Size(A) Trả về 1 vector chứa kích thƣớc A,
gồm số hàng và số cột của A.
Length(A) Trả về chiều dài của A, giá trị lớn nhất
của hàng và cột.
Ngoài ra còn có các hàm: Size(A,p); [m,n] =
size(A)
Copyright 2007
MATLAB 19
BIẾN (tt)
Thí dụ:
>> A = [1 2 3; 4 5 6]
A = 1 2 3
4 5 6
>> [m,n] = size(A)
m = 2
n = 3
>> length(A)
ans = 3
>>size(A,1)
ans = 2
Copyright 2007
MATLAB 20
BIẾN (tt)
BIẾN MÔI TRƢỜNG (Environmental Variable)
Thí dụ:
>> a = 1
a =
1
>> b = „MATLAB‟
b =
Matlab
Ta nói, a, b là các biến môi trường.
Copyright 2007
MATLAB 21
BIẾN (tt)
Khi làm việc trong MATLAB ở trong cửa sổ lệnh cũng
nhƣ các giá trị đã đƣợc tạo ra. Những lệnh và biến
này đƣợc thƣờng trú trong môi trƣờng làm việc của
MATLAB (Workspace) và có thể đƣợc nạp trở lại khi
muốn.
Đời sống của những biến chấm dứt khi ta thoát khỏi
chƣơng trình MATLAB.
Nhƣ Thí dụ trên, a đƣợc hiểu la một biến số, b là một
chuỗi.
Khi định nghĩa biến môi trƣờng, nếu gán giá trị cho nó
thì kiểu biến sẽ phụ thuộc vào kiểu giá trị đã gán cho
nó.
Copyright 2007
MATLAB 22
BIẾN (tt)
BIẾN CỤC BỘ (Local Variable)
Biến này chỉ tồn tại trong một hàm MATLAB và
không hiện hữu trong cửa sổ lệnh.
Thí dụ:
function[mean,stdev] = stat(x);
n = length(x);
mean = sum(x)/n;
stdev = sqrt(mean);
Trong trƣờng hợp này n là biến cục bộ và chỉ
đƣợc truy xuất trong một hàm.
Copyright 2007
MATLAB 23
BIẾN (tt)
BIẾN TOÀN CỤC (Global Variable)
Đƣợc định nghĩa bằng từ khóa global. Việc
xóa biến toàn cục dùng lệnh clear global
Isglobal(ten_bien): trả về 1 (ten_bien là biến
toàn cục), 0 (ten_bien không phải là biến toàn
cục)
Thí dụ:
Global x y z
x, y, z là các biến toàn cục.
Copyright 2007
MATLAB 24
BIẾN (tt)
Thƣờng mỗi hàm trong MATLAB đƣợc viết dƣới
dạng M File, có riêng những biến cục bộ cho
từng hàm và đƣợc lƣu trữ trong một vùng biến
đặc biệt, việc gọi hàm trong một hàm đều có thể
truy xuất biến này.
Nên dùng KÍ TỰ HOA để đặt tên biến toàn cục
để tránh trùng tên với các biến trong Workspace.
Copyright 2007
MATLAB 25
BIẾN (tt)
BIẾN SYMBOLIC
Symbolic processing là thuật ngữ dùng mô tả cách thức
máy tính thực hiện tính các biểu thức toán học (Thí dụ,
rút gọn một đa thức, đặt thừa số chung, tính giá trị một
biểu thức đại số, giải phƣơng trình đại số, giải phƣơng
trình vi phân, )
Khởi tạo biến symbolic:
x = sym(„x‟): Tạo biến symbolic có tên là x.
x = sym(„x‟,‟real‟): Tạo biến symbolic có tên x và là biến
không bị ràng buộc phải là biến thực.
k = sym(„p‟,‟positive‟): Tạo biến symbolic k là biến thực,
dƣơng.
Khởi tạo hằng symbolic: Nhằm tránh mắc sai lầm khi làm
tròn.
Copyright 2007
MATLAB 26
BIẾN (tt)
Khởi tạo hằng symbolic
Thí dụ:
>> hai_phan_ba = sym(„2/3‟);
>> pi = sym(„pi‟);
>> hai_phan_ba =
hai_phan_ba =
2/3 % Không hiển thị giá trị xấp xỉ
>> Pi
Pi =
pi % không hiển thị giá trị xấp xỉ.
- Liệt kê các biên symbolic hiện hành, sử dụng hàm
Copyright 2007
MATLAB 27
BIẾN (tt) - Symbolic
Liệt kê các biến Symbolic
>> syms x y;
>> p = 2*x + 3*y;
% Tạo biến symbolic p thông qua biểu thức symbolic
>> u = sqrt(x^2 + y^2);
% Tạo biến symbolic u thông qua biêu thức symbolic
>> d = subs(u, {x,y},{2,3})
% Tính giá trị biểu thức u khi x = 2, y = 3.
d =
13
>> v = subs(u,{x,y},{3,4})
% Tính giá trị biểu thức khi x = 3; y = 4;
v =
5
>> syms
„r‟ „s‟ „x‟ „y‟
Copyright 2007
MATLAB 28
BIẾN (tt) - Symbolic
Khởi tạo ma trận symbolic bằng biến symbolic.
Thí dụ:
>> n = 3;
>> syms x;
>> A = x.^ [[0:n]‟.* [0:n]];
% Dùng phép biến đổi lũy thừa mảng
A = [1, 1, 1, 1]
[1, x, x^2, x^3]
[1, x^2, x^4, x^6]
[1, x^3, x^6, x^9]
Copyright 2007
MATLAB 29
BIẾN (tt) - Symbolic
Tìm biến symbolic trong một hàm
Thí dụ:
>> syms b x y z;
>> findsym(5*b + 2*z)
% Hàm này tìm biến symbolic trong một hàm
ans =
b, z
Copyright 2007
MATLAB 30
BIẾN (tt)
LƢU và NẠP Biến
Biến sẽ bị xóa sạch khi:
− Dùng lệnh: clear all
− Thoát chƣơng trình MATLAB
Lưu biến:
− Để sử dụng lại cho phiên làm việc sau; dùng
lệnh (lƣu tất cả các biến do
Workspace đang quản lý(tên, kích thƣớc, giá
trị) vào một tập tin nhị phân (binary file) có
tên matlab.mat
Copyright 2007
MATLAB 31
BIẾN (tt)
Nạp biến:
− Dùng lệnh Nạp tất cả các biến đã lƣu vào
Workspace để dùng lại
Nếu không muốn dùng tập tin mặc định
matlab.mat, ta sử dụng lệnh để
lƣu tất cả biến vào tập tin có tên filename.mat và
muốn nạp lại biến khi dùng lệnh
Lƣu một vài biến trong cửa sổ workspace
− Lệnh
Nói chung cách đơn giản nhất là: Từ cửa sổ Menu
File ở cửa sổ lệnh chọn
Đặt tên tập tin (có đuôi mở rộng là *.mat)
Copyright 2007
MATLAB 32
Câu chú thích
Tất cả các văn bản đằng sau kí hiệu phần trăm
(%) đều là câu giải thích.
Thí dụ:
> heso_a = 10 % Hệ số a ptb2
heso_a =
10
>> heso_b = 20 % Hệ số b ptb2
heso_b =
20
Copyright 2007
MATLAB 33
Số phức
Một trong những điểm mạnh nhất của MATLAB là làm việc
với số phức.
Các hàm đặc biệt của số phức:
real(x) Phần thực của X
imag(x) Phần ảo của X
conj(x) Liên hợp phức của X
abs(x) Độ lớn, trị tuyệt đối của X
angle(x) Góc pha của số phức
complex(x) Tạo số phức từ phần thực và ảo
Copyright 2007
MATLAB 34
Số phức (tt)
Thí dụ:
>> a=1+3i
a = 1.0000 + 3.0000i
>> b=2-4i
b = 2.0000 - 4.0000i
>> a+b
ans = 3.0000 - 1.0000i
>> abs(a)
ans = 3.1623 % độ lớn của a
>> real(b) % phần thực của số phức b
ans = 2
>> imag(b) %phần ảo của số phức b
ans = -4
>> complex(2,2)
ans = 2.0000 + 2.0000i
Copyright 2007
MATLAB 35
Một số hàm toán học thông thƣờng
Tên hàm Mô tả, kết quả trả về
Any(x)
1 hoặc vecto hàng đơn vị nếu bất kỳ phần tử nào
của vecto hoặc ma trận x khác 0.
All(x)
là 1 hoặc vecto hàng đơn vị nếu tất cả các phần tử
nào của vecto hoặc ma trận x khác 0.
Isnan(x)
Là một tại những vị trí NaN (Not a Number, Thí dụ
0/0) trong x
Isinf(x) Là 1 tại những vị trí Inf (Infinitive, 1/0) trong x.
Finite(x) Là 1 tại những vị trí có giá trị hữu hạn trong x.
Isstr(x) Là 1 nếu x là một string (chuỗi)
Issym(x) Là 1 nếu x là một biến sym
Abs(x) Trị truyệt đối hoặc biên độ số phức
Acos(x) Hàm cosin ngƣợc
Acosh(x) Hyperbolic cosin ngược
Ceil(x) Làm tròn về phía trên
Atan(x) Hàm số tang ngược
Asin(x) Hàm số sin ngƣợc
Copyright 2007
MATLAB 36
Một số hàm toán học thông thƣờng
Tên hàm Mô tả, kết quả trả về
cos(x) Hàm cosin
cosh(x) Hyperbol cosin
exp(x) Hàm mũ ex
fix(x) Xấp xỉ không
floor(x) Làm tròn về phía zero
log(x) Hàm logarit tự nhiên
log10(x) Hàm logarit thập phân
round(x) Làm tròn về số nguyên gần nhất
sign(x)
Hàm dấu, Thí dụ: sign(1.2) = 1,sign(-23.4) = -1, sign(0)
= 0
sin(x) Hàm sin
sinh(x) Hàm Hyperbol sin
sqrt(x) Căn khai căn bậc hai
gdc(x,y) Bội số chung lớn nhất của hai số nguyên x và y.
lcm(x,y) Bội số chung nhỏ nhất của hai số nguyên x và y.
x^y Hàm mũ
Copyright 2007
MATLAB 37
Một số hàm toán cơ bản
Tên hàm Mô tả, kết quả trả về
rem(x,y) Số dư phép chia x/y
sum(v) Tổng các phần tử vector
prod(v) Tích các phần tử vector
min(v) Phần tử vector bé nhất
max(v) Phần tử vector lớn nhất
mean(v) Giá trị trung bình cộng
sign(x) Hàm dấu (= 1 nếu x>0;
= -1 nếu x<0;
= 0 nếu x=0)
Copyright 2007
MATLAB 38
Một số hàm cơ bản (tt)
Thí dụ:
>> x=4;
>> sqrt(x)
ans = 2
>> exp(x)
ans = 54.5982
>> sign(x)
ans = 1
>> rem(x,3)
ans = 1
>> v=[1 2 3];
>> min_v=min(x)
min_v = 1
>> mean(x)
ans = 2
>> sum(x)
ans = 6
Copyright 2007
MATLAB 39
Các Hàm liên quan đến ĐA THỨC
Đa thức đƣợc biểu diễn bằng vecto bậc một có bậc giảm
dần.
Cho hai đa thức f, g lần lƣợt đƣợc biểu diễn bởi a và b. Ta
sẽ có các hàm sau:
Conv(a,b) Nhân hai đa thức
Deconv(a,b) Chia hai đa thức
a + b Tổng hai đa thức
a – b Hiệu hai đa thức
roots(a) nghiệm của đa thức f đƣợc biểu diễn
bởi vecto a.
poly(r) Trả về các hệ số của đa thức có
nghiệm là vecto r.
Lưu ý: Khi cộng và trừ các đa thức phải có cùng kích thước.
Copyright 2007
MATLAB 40
Hàm ĐA THỨC (tt)
Thí dụ: Giải phƣơng trình: x4 + 10x3 + 0x - 1 = 0
Giải: Ta biểu diễn đa thức x4 + 10x3 + 0x - 1 bằng một vectơ
hàng với các phần tử là các hệ số của đa thức sắp xếp theo
thứ tự bậc giảm dần.
>> a = [1 10 -2 0 -1];
Nghiệm của đa thức có thể đƣợc tính bằng hàm: roots(a)
>> R = roots(a)
R =
-10.1971
0.5291
-0.1660 + 0.3972i
-0.1660-0.3972i
Copyright 2007
MATLAB 41
Hàm ĐA THỨC (tt)
Từ các nghiệm của đa thức có thể xây dựng lại đa
thức bằng hàm: poly(a);
Thí dụ:
>>a = poly(R)
a = 1.0000 10.0000 -2.0000 0.0000 -1.0000
>>a = [1 2 3 4]; % x3+2x2+3x+4
>>b = [5 6 7 8]; % 5x3+6x2+7x+8
>>Tich = conv(a,b)
Tich = 5 16 34 60 61 52 32
Copyright 2007
MATLAB 42
Hàm ĐA THỨC (tt)
>>Thuong = deconv(a,b)
Thuong = 0.2000
>>Tong = a + b
Tong = 6 8 10 12
>>Hieu = a – b
Hieu = -4 -4 -4 -4
Copyright 2007
MATLAB 43
CÁC LỆNH ĐIỀU KIỆN VÀ LẶP
Vòng lặp FOR:
Cấu trúc:
for i = n:m %n = phần tử đầu, m = phần tử cuối
end
Thí dụ vòng lặp FOR: Tính giai thừa của 100?
Copyright 2007
MATLAB 44
CÁC LỆNH ĐIỀU KIỆN VÀ LẶP
Vòng lặp WHILE: lặp vòng khi biểu thức logic là true.
Cấu trúc:
while
end
Thí dụ 1:
n=1;
while prod(1:n) < 1e100
% prod tính tích các phần
n = n+1;% tử cột của vectơ hay
End % ma trận
Copyright 2007
MATLAB 45
CÁC LỆNH ĐIỀU KIỆN VÀ LẶP
Lệnh if else elseif
Cấu trúc:
Nếu là true thì đƣợc
thi hành, nếu không thì thực hiện các lệnh sau
end.
if
else
end
if
elseif
end
if
end
Copyright 2007
MATLAB 46
CÁC LỆNH ĐIỀU KIỆN VÀ LẶP
Thí dụ 1:
if rem(a,2)==0
disp('la mot so chan')
b=a/2;
End
if n<0
disp('la so duong')
elseif n==0
disp('la so 0')
else
disp('la so am')
end
Copyright 2007
MATLAB 47
CÁC LỆNH ĐIỀU KIỆN VÀ LẶP
Thí dụ 2: Hàm ngay_trong_thang.m
function y = ngay_trong_thang(th,nam)
if (th==4)|(th==6)|(th==9)|(th==11)
y = 30
elseif (th==2)
if (rem(nam,4)~=0)
y=28
else
y=29
end
else
y=31
end
Copyright 2007
MATLAB 48
CÁC LỆNH ĐIỀU KIỆN VÀ LẶP
Lệnh switch case: chọn nhiều trƣờng hợp
Cấu trúc:
switch
case
case
otherwise
<Các phát biểu % thực hiện nếu biểu thức không phù
hợp mọi trƣờng hợp>
end
Copyright 2007
MATLAB 49
CÁC LỆNH ĐIỀU KIỆN VÀ LẶP
Thí dụ:
switch input_num
case -1
disp(„negative one‟);
case 0
disp(„zero‟);
case 1
disp(„positive one‟);
otherwise
disp(„other value‟);
end
Copyright 2007
MATLAB 50
ĐỒ HỌA CĂN BẢN
Tổng quát về đồ họa trong MATLAB
MATLAB có các hàm đồ họa để vẽ các đặc
tuyến bất kỳ trên mặt phẳng 2D, 3D, cho phép
tạo ra đối tƣợng đồ họa điều khiển đƣợc.
MATLAB cho phép ngƣời lập trình sử dụng “bộ
nhớ ảo”, khi đó có thể ghi các biến làm việc
thành tập tin *.mat trên đĩa và có thể nạp bộ
nhớ khi cần thiết. Nhờ vậy, MATLAB có thể giải
đƣợc các bài toán lớn và phức tạp.
Ngoài ra, MATLAB còn phép quản lý tập tin dữ
liệu trong chính môi trƣờng MATLAB mà không
cần đến môi trƣờng windows.
Copyright 2007
MATLAB 51
ĐỒ HỌA CĂN BẢN (tt)
Màu sắc và kiểu đƣờng vẽ
Ký hiệu Màu Ký hiệu Kiểu nét
y Yellow . Point
m Magenta o Circle
c Cyan x X-mark
r Red + Plus
g Green * Star
b Blue - Solid line
w White : Dotted line
k Black
-. Dash-dot line
-- Dased line
Copyright 2007
MATLAB 52
ĐỒ HỌA CĂN BẢN (tt)
Các kiểu data marker Ký hiệu trong plot
Dấu chấm (dot .) .
Dấu sao (asterisk *) *
Dấu gạch chéo (cross x) x
Vòng tròn (circle o) o (chữ o thường)
Dấu cộng (plus sign + ) +
Hình vuông (square ) s
Diamond ( ) d
Ngôi sao () p
Copyright 2007
MATLAB 53
ĐỒ HỌA CĂN BẢN (tt)
Đồ họa không gian 2 chiều trong MATLAB
Lệnh plot: Đồ thị tuyến tính X-Y, vẽ trong mặt
phẳng hai chiều.
Lệnh fplot: đƣợc dùng để vẽ hàm số một cách
“thông minh”, nó tự động phân tích hàm phải vẽ
và chọn số điểm thích hợp cần phải thể hiện để
phản ánh các đặc điểm của hàm.
− Cú pháp: fplot(„string‟, [xmin,xmax])
− Dạng đầy đủ: fplot(„string‟, [xmin xmax ymin ymax]
Copyright 2007
MATLAB 54
ĐỒ HỌA CĂN BẢN – Plot() (tt)
Thí dụ:
>>x = linspace(0,2*pi,30);
%Tạo mảng x gồm 30 phần tử có giá trị trong
khoảng 0 – 2*
>>y = sin(x);
>>plot(x,y) %vẽ đồ thị hàm y theo x
>>xlabel(„x [0-2*pi]); ylabel(„y‟);
%đặt nhãn trục tọa độ x và y
>>title(„y = sin(x)‟) % đặt tên đồ thị
>>grid on % Tạo lưới cho đồ thị
Copyright 2007
MATLAB 55
ĐỒ HỌA CĂN BẢN – Plot() (tt)
Copyright 2007
MATLAB 56
ĐỒ HỌA CĂN BẢN – Plot() (tt)
Để vẽ hai đồ thị trên cùng một trục tọa độ
>>z = cos(x);
>>plot(x,y,‟b-*‟,x,z,‟r‟)
% Vẽ y và z trên cùng đồ thị, y là đường -* màu
xanh, z là đường -- màu đỏ
>>legend(„y = sin(x)‟,‟z=cos(x)‟) % c