matlab
Trang 1start on 5/8/2001 If you keep anything long enough, you can throw it away.
Matlab part I Basis and languge
Phần 1 Nhập môn về ngôn ngữ MatlabChương 1 Các khái niệm cơ bản.
1.1 Khởi động matlab (trong windows 9x).
1.2 Các phím chuyên dụng và các lệnh thông dụng hệ thống 1.3 Biến và thao tác biến
1.4 Số phức
1.5 Làm việc ở chế độ hội thoại (command window).
1.6 Làm việc ở chế độ soạn chương trình (edit window) 1.7 Sơ lược về đồ hoạ.
Chương 4 Đồ hoạ 2 chiều
4.1 Các phép biến đổi đồ hoạ.
4.2 Phép biến đổi Affine trong mặt phẳng
4.3 Các hàm chuẩn đồ hoạ 2 chiều
Chương 5 Đồ hoạ không gian 3D
Trang 3Phần I Nhập môn về ngôn ngữ Matlab
Giới thiệu
-Matlab là phần mềm của công ty Math Works cộng hoà Séc
-Công dụng : Matlab là chương trình phần mềm trợ giúp cho việc tính toán và hiển thịcác bài toán kỹ thuật Matlab được điều khiển bởi tập hợp các lệnh, tác động qua bànphím trên cửa sổ điều khiển (Command Window) Nó cũng cho phép một khả năng
lập trình với thông dịch tập hợp lệnh-lập trình scrip file.
-Matlab là viết tắt của từ Matrix Laboratory
-Đặc điểm của ngôn ngữ Matlab:
Bước 2: Mô tả các giá trị dữ liệu vào/ra
Việc mô tả các thông tin cần giải đáp có liên quan trực tiếp đến cáctham số được sử dụng trong quá trình tính toán, bởi vậy bước này cầnđược tiến hành cẩn trọng Trong nhiều trường hợp, sơ đồ khối được sửdụng để xác định vị trí luồng vào/ra, tuy nhiên đôi khi chúng chỉ là hộpđen vì không thể xác định được luồng ra tại một điểm nào đó trongcác bước Mặc dầu vậy, ta vẫn chỉ ra được những thông tin để tính toánluồng ra
Bước 3: Các tính toán bằng tay với các tập dữ liệu đầu vào đơn giản
Đây là bước để nhằm tìm kiếm những giải pháp cụ thể, bạn không nên
bỏ qua kể cả đối với các bài toán đơn giản Nếu trong bước này bạnchưa lấy được dữ liệu hay chưa tính được đầu ra thì có thể chuyển sangbước kế tiếp
Bước 4: Chuyển bài toán sang giải pháp bằng Matlab
ở bước này bạn sẽ sử dụng các hàm toán, cũng là các lệnh để mô tả bài
Trang 4toán theo Matlab
Bước 5: Kiểm tra
Đây là bước cuối cùng trong tiến trình giải bài toán Bài toán đượckiểm tra bằng các dữ liệu đầu vào Matlab thực hiện bài toán và chobạn kết quả ở đầu ra
Trong trường hợp không có kết quả hoặc kết quả sai thì điều đó có nghĩa làMatlab chưa thực hiện được bài toán, bạn cần kiểm tra lại cả tính toán bằngtay và thao tác bằng Matlab
Trang 5Chương 1 Các khái niệm cơ bản 1.1 Khởi động matlab (trong windows 9x).
-Khới động matlab: Kích chuột vào nút Start chọn Program chọn Matlab chọn Matlab 5.3 hoặc kích chuột vào biểu tượng của Matlab trên Desktop.
-Giao diện của Matlab gồm :
+Một cửa sổ lệnh (command window)
+Một cửa sổ soạn thảo (edit window)
+Nhiều cửa số đồ hoạ (figures)
-Việc ngắt chương trình đang thực hiện không đúng theo yêu cầu thông qua phím
↑ hoặc Ctrl-p Gọi lại lệnh vừa thực hiện trước đó
↓ hoặc Ctrl-n Gọi lại lệnh đã đánh vào trước đó
→ hoặc Ctrl-f Chuyển con trỏ sang phải 1 kí tự
← hoặc Ctrl-b Chuyển con trỏ sang trái 1 kí tự
Ctrl-l hoặc Ctrl-← Chuyển con trỏ sang trái 1 từ
Ctrl-r hoặc Ctrl-→ Chuyển con trỏ sang phải 1 từ
Ctr-a hoặc Home Chuyển con trỏ về đầu dòng
Back Space Xoá kí tự trước con trỏ
Del Xoá kí tự tại vị trí con trỏ
Các lệnh hệ thống:
clc Xoá toàn bộ cửa sổ dòng lệnh
clf Xoá cửa sổ đồ hoạ
computer Lệnh in dòng kí tự cho biết loại máy tính
ctrl-c Dừng chương trình khi rơi vào tình trạng lặp vô hạn
demo Lệnh cho xem các chương trình mẫu
exit,quit Thoát khỏi môi trường Matlab
help Lệnh xem trợ giúp về ngôn ngữ, hàm,…
input Nhập dữ liệu từ bàn phím
load Tải các biến lưu trong 1 file đưa vào vùng làm việc
pause Lệnh tạm thời dừng chương trình đến phím bất kì được nhấn
save Lưu giữ các biến vào file Matlab.mat
version Cho biết phiên bản hiện tại của Matlab
ver Cho biết phiên bản hiện tại của các toolbox đã có
what Cho biết danh sách Matlab-file thư mục hiện tại
which Cho biết đường dẫn của 'file_name'
Trang 61.3 Biến và thao tác biến.
1.3.1 Biến trong Matlab.
Tên biến trong Matlab (từ 5.3 trở đi) có thể dài tới 31 kí tự bao gồm các chữ cái A-Z hay a-z cùng các chữ số và dấu gạch dưới '_', tên phải được bắt đầu bằng chữ cái,tên biến không được đặt trùng với tên các từ khoá Tên các hàm đã được đặt cũng có thể được sử dụng làm tên của biến, và hàm này sẽ mất tác dụng cho đến khi biến đó được xoá
Các hàm tác động lên biến:
clear all Xoá tất cả các biến hiện có trong vùng nhớ
clear name2,name2, Chỉ xoá các biến có tên chỉ định
exist('name') Trả về định nghĩa của 'name':
0 nếu 'name' không tồn tại
1 nếu 'name' là biến
2 nếu 'name' là tên m-file
3 nếu 'name' là MEX-file
4 nếu 'name' là MDL-file
5 nếu 'name' hàm built-in
6 nếu 'name' là P-file
7 nếu 'name' là tên thư mục
pack Lệnh thực hiện sắp xếp lại vùng nhớ cho các
biến Khi bộ nhớ máy tính đầy, lệnh pack cho phép tạo ra thêm vùng nhớ cho biến mà không phải xoá các biến đã tồn tại
whos Hiển thị tên và kiểu các biến
who global Hiển thị các biến cục bộ
who -file 'filename' Hiển thị các biến trong têp filename.mat
1.3.2 Kích thước của biến.
Độ lớn, hay chiều dài của biến vector cũng như ma trận được xác qua các hàm
có sẵn của Matlab
size(A) Trả về vector 2 phần tử, phần tử đầu cho biết số hàng của
ma trận, phần tử đầu cho biết số cột của ma trận[m,n]=size(A) Trả giá trị độ lớn của ma trận, m-số hàng, n-số cột
size(A,p) Trả về số hàng nếu p=1 và số cột nếu p≥2
length(x) Trả về giá trị số lượng phần tử của x
length(A) Trả giá về trị max(m,n) với [m,n]=size(A)
1.3.3 Một số biến được định nghĩa trước.
ans Biến có sẵn được dùng lưu kết quả phép tính cuối cùng
eps Trả về độ chính xác tương đối tính toán của máy xác định khoảng từ
1.0 đến số phảy động lớn nhất tiếp theo EPS được sử dụng là sai số cho phép mặc định của pinv, rank và các hàm khác
pi Trả về trị 3.1415926535897…
Trang 7realmax Cho biết giá trị lớn nh
ất máy tính có thể tính toán được, các số lớn hơn giá trị này sẽ gây tràn trên
realmin Cho biết giá trị nhỏ nhất máy tính có thể tính toán được, các số lớn
bé giá trị này sẽ gây tràn dưới
inf biểu diễn số vô cùng ∝
NaN biểu diễn kết quả 0/0, ∝-∝
1.4 Số phức.
1.4.1 Các phép toán đối với số phức.
Cho các số phức z1=a1+i*b1, z2=a2+i*b2, với a1,a2,b1,b2 là các số thực
2 2
2 1 1 2 2
1 2
(
b a
b a b a i b b a a
+
−+
real(a+i*b) Hàm cho giá trị phần thực a của số phức
imag(a+i*b) Hàm cho giá trị phần ảo b của số phức
conj(a+i*b) Hàm trả về số phức liên hợp a-i*b
abs(a 1 +i*b 1 ) Trả về modul 2
1
2
1 b
a + của số phức
angle(a+i*b) Tính góc có giá trị là atan2(b,a), giá trị góc ∈[−π,π]
1.4.3 Toạ độ biểu diễn số phức.
Ta có thể biểu diễn số phức a+i*b trên hệ trục toạ độ Đối với hệ trục toạ độ đềcác phần thực được biểu diễn trên trục x: x=a, phần ảo được biểu diễn trên trục y: y=b Đối với hệ toạ độ cực, số phức được biểu diễn bởi ρ,θ
Trong đó:
.tan
,1
2 2
a b
b a
θρ
θρ
b
θρ
Hình Biểu diễn số phức
Trang 8Biểu diễn số phức theo độ lớn và phase như sau:
1.5 Làm việc ở chế độ hội thoại (command window).
-Tại dấu mời ằgõ dòng lệnh, dòng lệnh sẽ được thực hiện ngay lập tức sau khi nhấn
phím Enter ↵ Kết quả sẽ được đưa ra cửa sổ lệnh hoặc cửa sổ đồ hoạ Nếu có lỗi, lỗi sẽ được ghi ngay tại cửa sổ lệnh
-Qui tắc viết dòng lệnh:
+Trên 1 dòng có thể viết nhiều lệnh, các lệnh được phân cách bởi dấu ',' hoặc ';' Nếu kết quả lệnh trả về giá trị số và kết thúc bởi dấu ',' kết quả sẽ được in trên cửa sổ lệnh, còn nếu kết thúc bởi dấu ';' kết quả sẽ không được in ra Với các lệnh không trả
về biến nào, dấu phân cách lệnh ',' và ';' là như nhau
+Khi lệnh quá dài, hoặc muốn viết trên nhiều dòng lệnh dùng dấu để matlab nhận dòng tiềp theo
-Chỉ nên sử dụng chế độ hội thoại khi giải bài toán có cấu trúc đơn giản Còn với bài toán có cấu trúc phức tạp nên sử dụng chế độ lập trình
[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
1.6 Làm vệc ở chế độ viết chương trình.
-Tại cửa sổ lệnh (Command Window) chọn File menu New m-file để vào chế
độ soạn thảo viết chương trình Hoặc mở m-file có sẵn để sửa, chọn File menu
Open chọn m-file cần sửa,
hoặc viết tại cửa sổ lệnh dòng lệnh ằ edit filename.
-Chạy file chương trình đã soạn thảo: Có 3 cách
+Chạy ngay tại cửa sổ soạn thảo: Tool menu Run , chỉ dùng được khi file được lưu (Save) vào thư mục hiện tại (current path).
+Chạy trong cửa sổ lệnh: >>edit tên_m_file ↵
+Chạy trong cửa sổ lệnh: File menu Run Script viết tên file, hoặc chọn
Browse để tìm m-file cần chạy
Trang 91.7 Sơ lược về đồ họa.
1.7.1 Các lệnh đồ hoạ thông dụng.
Khả năng đồ hoạ trong Matlab rất phong phú cho phép vẽ hầu hết các dạng đồ thị và các dạng biểu đồ cho các thông tin trong mặt phẳng (2D) và trong không gian (3D)
các lệnh đồ hoạ đơn giản:
plot(x1,y1,s1,x2,y2,s2,
.) Vẽ các đồ thị trong mặt phẳng toạ độ đềcác với kiểu đường chỉ định trong s1,s2
plot(y) Nếu y là dãy số thực≡plot(i=1:length(y),y)
nếu y là số phức≡plot(real(y),imag(y))
plot3(x1,y1,z1,s1, ) Vẽ các đồ thị trong không gian toạ độ đềcác
với kiểu đường chỉ định trong s1,
title('tiêu đề đồ thị') Đưa tiêu đề đồ thị
xlabel, ylabel, zlabel Đưa vào các nhãn cho các trục x, y, z
legend Lệnh đưa vào chú thích đường vẽ
grid Lệnh vẽ các đường dóng trên đồ thị
hiện thông qua các menu lệnh trên cửa sổ đồ hoạ hoặc các lệnh của Matlab
>>print; %In cửa sổ đồ hoạ hiện thời ra máy in
>>print filename % In cửa sổ đồ hoạ hiện thời ra tệp filename.fig
1.7.3 Một vài ví dụ minh hoạ.
Vẽ đồ thị các hàm y=sin(x), y=x*cos(x), y=ln(x2+1) trong khoảng -2≤x≤2
-5 0 5 10 0 2 4 6 8
Trang 10-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -1
-0.5 0 0.5 1 1.5
sin(x) xcos(x) ln(x 2 +1)
Vẽ đường cong tham số cho bởi phương trình:
;133
3
t t y
t t x
ằ t=linspace(-2.5,2.5);x=t.^3-3*t+1;y=t.^3+3*t-1;
ằ plot(x,y);grid on;axis tight;
ằ xlabel('x'); ylabel('y');title('Do thi duong cong tham so');
Vẽ phổ màu của mặt z= f(x,y)=(x2−3y2)e−(x2+y2 ),trong không gian 2D
Trang 111.8 Các hàm âm thanh.
Matlab cho phép tạo âm thanh thông qua các vector bởi hàm sound()
sound(v) Tạo tín hiệu từ vector v ra âm thanh, vector v phải
được chuẩn hoá -1≤y≤1, các giá trị ngoài khoảng sẽ
bị cắt, tốc độ mẫu mặc định là 8192Hz Muốn có
âm thanh stereo v là vector 2 cột
sound(v,fs) Thực hiện như hàm sound(v) với f là dải tần Hz
sound(y,fs,bits) Tạo âm thanh với tốc độ mẫu bits/mẫu nếu có khả
năng Hầu hết các thiết bị cho phép bits=8 hay 16
soundsc(v,slim) Tương tự sound() nhưng sẽ tạo âm thamh với giá trị
số bất kì của v, v sẽ được chuẩn hoá theo slim=[slow s high], mặc định slim=[min(v) max(v)]
Trang 12chương 2
Ma trận và các phép toán ma trận2.1Vô hướng, vector và ma trận.
Ma trận (matrix) là 1 bảng số mà các phần tử của nó được sắp xếp theo hàng và cột Ma trận chỉ có một hàng hoặc một cột được gọi là véc tơ (vector) Ma trận chỉ có một hàng và một cột được gọi là đại lượng vô hướng (scalar)
Kí hiệu toán học ma trận và vector:
m
n n mn
a a
a
a a
a
a a
a A
2 22
21
1 12
v
v
v
2 1
Với aij (i=1 n; j=1 m), vk (k=1 q; k=1.p) là các trị vô hướng
Kích thước của ma trận thể hiện bằng kí hiệu (mxn), nghĩa là có m hàng
và n cột
kích thước của vector vr là (1xp), của vc là (qx1), của vô hướng là (1x1)
Độ lớn hay chiều dài của vector vr là p, của vc là q
Để cho tiện từ đây về sau gọi ma trận đại diện cho vector hay vô hướng
2.1.1Nhập giá trị cho ma trận.
Có 4 cách vào dữ liệu cho các biến ma trận
+Liệt kê trực tiếp các phần tử của ma trận
+Đọc dữ liệu từ một file dữ liệu
+Sử dụng toán tử (:)
+Vào dữ liệu trực tiếp từ bàn phím
Qui tắc định nghĩa ma trận trong Matlab:
Tên_matrận=[a11,a12,a13; a21 a22,a23; a31 a32 a33];
+Tên_matrận đặt theo qui cách tên biến
+Nội dung trong ngoặc vuông [ ] để định nghĩa các phần tử
+Dấu chấm phẩy (;) dùng để phân cách các hàng Các giá trị trong hàng được phân cách bởi dấu phẩy (,), hoặc dấu cách (space bar)
Ma trận rỗng được kí hiệu là [ ]
a Liệt kê trực tiếp.
Là cách định nghĩa đơn giản nhất Các phần tử được liệt kê trong dấu ngoặc vuông
Trang 13>>a(1)=3.14; %phần tử thứ nhất của a thay đổi từ 1 thành 3.14
Cũng có thể mở rộng ma trận bằng cách thêm cho nó phẩn tử mới Cho câu lệnhsau: >>a(4)=-1.98;
ma trận a lúc này sẽ có 4 phần tử a=[1 2.4 -4.7 -1.98];
còn với câu lệnh:
>>a(7)=2.07;
thì ma trận a sẽ có 7 phần tử, các phần tử a(5), a(6) sẽ tự động nhận giá trị là 0
b Đọc dữ liệu từ 1 file dữ liệu.
Sử dụng hàm load để tải dữ liệu từ các biến đã được tạo trước đó
c Sử dụng toán tử (:) xem '2.4.4 Các thao tác ma trận'
d Vào số liệu trực tiếp từ bàn phím.
Sử dụng cú pháp nhập dữ liệu từ bàn phím như sau:
>>A=input('Nhập dữ liệu cho A: ');
Khi thực hiện lệnh này máy sẽ hiển thị xâu kí tự 'Nhập dữ liệu của A: ' và đợi người sử dụng nhập số liệu vào Nội dung nhập liệu tương tự câu lệnh thông thường cho ma trận, và cell
2.1.2 Hiển thị ma trận.
Matlab cho phép hiển thị ma trận số theo nhiều dạng khác nhau và cung cấp nhiều hàm để xử lý việc hiển thị ma trận số
Các dạng thức (format) biểu diễn số:
format short Số dấu phẩy cố định, với 5 chữ số có nghĩa sau dấu phảyformat long Số dấu phẩy cố định, với 15 chữ số có nghĩa sau dấu
phảyformat short e Số dấu phẩy động, với 5 chữ số có nghĩa sau dấu phảy
format long e Số dấu phẩy động, với 15 chữ số có nghĩa sau dấu phảyformat short g Lựa chọn tốt nhất phẩy cố định hay động với 5 chữ số có
nghĩa sau dấu phảyformat long g Lựa chọn tốt nhất phẩy cố định hay động với 15 chữ số
có nghĩa sau dấu phảyformat rat Biểu thị số thực về số hữu tỉ gần nhất
disp Hiển thị nội dung của biến
fprintf Hàm cho phép hiển thị theo các khuôn dạng chỉ định
sprintf Hàm trả về xâu kí tự in theo các khuôn dạng chỉ định
Trang 142.2 Các ma trận đặc biệt.
Matlab cung cấp nhiều hàm lưu các hằng cho phép sinh ma trận có dạng đặc biệt
eye(m,n) ma trân đơn vị đường chéo mở rộng eye(n)
rand(m,n) ma trận ngẫu nhiên phân bố đều ∈ (0,1) rand(n)
randn(m,n) ma trận ngẫu nhiên phân bố chuẩn
thuộc (-1,1)
randn(n)linspace(a,b,n) tạo vectơ n phần tử cách đều từ a đến b, măc định n=100;
logspace(a,b,n) vectơ n phần tử hàm mũ thập phân từ 10 a đến 10 b , mặc định n=50;magic(n) sinh ma trận ma phương cấp n
pascal(n) sinh ma trận Pascal
compan(p) sinh ma trận có đa thức đặc trưng p
[out1,out2, ] = gallery(matname, param1, param2, )% Xem help gallery
hadamard, hankel,hilb, invhilb, kron, roserr, toeplitz,vander, wilkinson
2.3 Các phép toán vô hướng
2.3.1Biểu thức số học cho vô hướng.
2.3.2 Thứ tự ưu tiên các toán tử.
Khi một số toán tử kết hợp trong biểu thức, điều quan trọng nhất là phải biết thứ
tự ưu tiên các toán tử trong biểu thức
4 Nhân, chia từ trái qua phải
5 Cộng, trừ từ trái qua phải
2.3.3 Các phép toán vector.
Trang 15Luỹ thừa mảng ab a.^b
Các phép toán trên áp dụng cho các ma trận cùng kích thước, hoặc ma trận với
1 0 14 -4 a./b
Warning: Divide by zero.
ans = 1.0000 Inf 3.5000 -1.0000 b.\a
ans = 1.0000 0 0.2857 -1.0000 a.^b
1 0 4 4 c.^a
ans = 2.0000 4.0000 128.0000 0.2500 a+c
ans =
3 4 9 0c./a
ans = 2.0000 1.0000 0.2857 -1.0000
c
1}mp=Amn*Bnp
A*B
Trang 160 + 1.0000i 5.0000 2.0000 4.0000 -6.0000 2.0000 - 1.0000iA*E
ans =
-8.0000 + 2.0000i
-14.0000 - 5.0000i
B*Aans =
-3 7 -3
7 -12 9
D'ans =
0 - 1.0000i 5.0000 2.0000 4.0000
5 -8 -8 13
pinv(A)ans = 0.0310 0.0471 0.2291 -0.1006 0.1702 0.0514
1.0000 -0.0000 0.0000 1.0000
pinv(E)ans =
-1.1033 - 0.0920i 0.1669 + 0.0984i
2.4.2 Các thao tác ma trận.
Matlab cung cấp nhiều hàm cho phép thao tác trên ma trận:
Rot90(A,n) Các phần tử của ma trận A được quay một góc 90 o ngược chiều
kim đồng hồ Nếu có thêm tham số n sẽ quay n lần.
fliplr(A) Đảo các phần tử của ma trận A từ trái sang phải.
flipud(A) Đảo các phần tử của ma trận A từ trên xuống dưới.
Trang 17B pq =Reshape(A mn ) Định dạng lại ma trận, yêu cầu pxq=mxn.
sort(A) Trả về ma trận với các cột được sắp xếp từ nhỏ đến lớn Số phức được
xét bằng modul của nó.
Chích các phần tử của ma trận.
diag(A) Lấy các phần tử của ma trận trên đường chéo chính, trả về vector cột
diag(A,k) Lấy các phần tử của ma trận trên đường chéo tuỳ chọn k:
k=0 chọn đường chéo chính.
k>0 chọn đường chéo thứ k ở phía trên đường chéo chính.
k<0 chọn đường chéo thứ k ở phía dưới đường chéo chính.
triu(A) Là ma trận cùng cỡ với A Lấy các phần tử trên đường chéo chính thứ và
phía trên đường chéo chính các vị trí khác bằng không.
triu(A,k) Lấy các phần tử ở phía trên đường chéo thứ k và phía trên
tril(A) Là ma trận cùng cỡ với A Lấy các phần tử trên đường chéo chính và nằm
dưới đường chéo chính các vị trí khác bằng không.
tril(A,k) Lấy các phần tử ở phía dưới đường chéo chính thứ k và phía dưới
nếu d=1 viết y=a:b;
A(:,k) Thao tác cột thứ k của ma trận
A(l,:) Thao tác hàng thứ l của ma trận
A(:) Nối các cột của ma trận A thành vector cột
A(end) Thao tác phần tử cuối cùng của ma trận
A(end,k) Thao tác phần tử cuối cùng của cột thứ k
A(l,end) Thao tác phần tử cuối cùng của hàng thứ l
A(p:q,k) Thao tác phần tử từ vị trí p đến vị trí q của cột thứ k
A(l,p:q) Thao tác phần tử từ vị trí p đến vị trí q của hàng thứ l
A(p:q,l:k) Thao tác ma trận con
x(v) Thao tác các phần tử được cho trong vector chỉ số v
A(:,v) Thao tác các cột chỉ định trong vector chỉ số v
A(v,:) Thao tác các hàng chỉ định trong vector chỉ số v
y=A(a<=A&A<b)
Trả về các phần tử của A thoả mãn biểu thức
Trả về các phần tử của A lớn hơn không
Trả về các phần tử của A là số thực
Trả về các phần tử của A thuộc đoạn [a,b)
Ví dụ 1:
Trang 18A=[1 3 5 7; 2 4 6 8;9 8 7 6];
B=rot90(A);
C=rot90(A,2);
E=fliplr(A);
D=flipud(A);
F=reshape(A,6,2);
a=A(:);
b=A(:,2);
c=A(3,:);
d=A(1:3,2);
e=A(end);
f=A(1:2,2:3);
v=[1 3 5 7];
g=A(v);
A =
1 3 5 7
2 4 6 8
9 8 7 6
B = 7 8 6
5 6 7
3 4 8
1 2 9
C = 6 7 8 9
8 6 4 2
7 5 3 1
E = 7 5 3 1
8 6 4 2
6 7 8 9
D = 9 8 7 6
2 4 6 8
1 3 5 7
F = 1 5
2 6
9 7
3 7
4 8
8 6
a = 1
2
9
3
4
8
5
6
7
7
8
6
b = 3
4
8
c = 9 8 7 6
d = 3
4
8
e = 6
f = 3 5
4 6
v = 1 3 5 7
g = 1 9 4 5
Ví dụ 2: A=[1+i 1-3*i 12; 1 2.3 -4;2 -1-2.1*i -1; 1 2 4]; rA=A(find(imag(A)==0)); pA=A(find(A>0)); nA=A(find(A<0)); aAb=A(find(1<A&A<4)); sA=sort(A); rA = 1.0000 2.0000 1.0000 2.3000 2.0000 12.0000 -4.0000 -1.0000 4.0000 pA = 1.0000 + 1.0000i 1.0000
2.0000
1.0000
1.0000 - 3.0000i 2.3000
2.0000
12.0000
4.0000
nA = -1.0000 - 2.1000i
Trang 19-4.0000
-1.0000
aAb = 2.0000 2.3000 2.0000 sA = 1.0000 2.0000 -1.0000
1.0000 2.3000 4.0000
1.0000 + 1.0000i -1.0000 - 2.1000i -4.0000
2.0000 1.0000 - 3.0000i 12.0000 Ví dụ 3: A=[1+i 1-3*i 12; 1 2.3 -4;2 -1-2.1*i -1; 1 2 4]; tuA=triu(A) tuA1=triu(A,2) tuA1=triu(A,-1) tlA=tril(A) tlA1=tril(A,2) tlA1=tril(A,-1) tuA = 1.0000 + 1.0000i 1.0000 - 3.0000i 12.0000 0 2.3000 -4.0000 0 0 -1.0000 0 0 0
tuA1 = 0 0 12
0 0 0
0 0 0
0 0 0
tuA1 = 1.0000 + 1.0000i 1.0000 - 3.0000i 12.0000 1.0000 2.3000 -4.0000 0 -1.0000 - 2.1000i -1.0000 0 0 4.0000 tlA = 1.0000 + 1.0000i 0 0
1.0000 2.3000 0
2.0000 -1.0000 - 2.1000i -1.0000 1.0000 2.0000 4.0000 tlA1 = 1.0000 + 1.0000i 1.0000 - 3.0000i 12.0000 1.0000 2.3000 -4.0000 2.0000 -1.0000 - 2.1000i -1.0000 1.0000 2.0000 4.0000 tlA1 = 0 0 0
1.0000 0 0
2.0000 -1.0000 - 2.1000i 0
1.0000 2.0000 4.0000
Trang 20Chương3 Lập trình trong matlab 3.1 Các phần tử cơ bản
Các giá trị số nhỏ hơn giá trị realmin sẽ gây lỗi tràn dưới (exponent underflow) Giá
trị của kết quả vượt miền giá trị cho phép của biến nhớ máy tính Trong Matlab, kết quả này được biểu diễn là 0
. Toán tử mảng Tác động tương ứng phần tử-phần tử trong các toán tử
.* , ^ , / , \ hay ', ví dụ C = A / B là ma trận thành phần của nó c(i,j) =a(i,j)/b(i,j)
. Thao tác phần tử (field) của biến cấu trúc A.field và A(i).field, khi A là
biến cấu trúc, thao tác nội dung của trường "field" Nếu A không phải làcấu trúc vô hướng, sẽ phát sinh thao tác danh sách Có thể lồng các cấutrúc như X(2).field(3).name Có thể kết hợp cấu trúc, mảng khối, ngoặcchỉ số để thao tác trên các biên cấu trúc
Dấu đại diện thư mục cha Ví dụ cd
Chỉ dấu dòng tiếp theo liên kết với dòng trên
, Dấu phân cách chỉ số, phân cách câu lệnh có hiển thị nội dung biến
; Dấu phân cách câu lệnh không hiển thị nội dung biến
% Chỉ dấu bắt đầu dòng ghi chú, tất cả các lệnh sau "%" sẽ bị bỏ qua hoặc
được in bởi lệnh
! Thi hành lệnh hệ điều hành
= Toán tử gán
' Toán tử string 'HELLO' là vector tổ hợp các thành phần kí tự mã ASCII
Để ghi kí tự này trong xâu kí tự viết 2 lần kí tự này Ví dụ: 'Let''s Go.'
.' Toán tử chuyển vị
Trang 21' Toán tử chuyển vị và lấy liên hợp phức.
số Sẽ xuất hiện lỗi nếu các chỉ số <1 hoặc lớn hơn kích thước của X.Ngoặc đơn có thể bao hàm các chỉ số logic (hay 0-1) Nếu V là biếnlogic, các phần tử khác không của V xác định mặt nạ lên mảng X Mảnglogic được phát sinh do các toán tử quan hệ và toán tử locgic hay câulênhl logic Ngoặc đơn được được hỗ trợ của tất cả các kiểu dữ liệu trongMatlab như là mảng số thập phân, cấu trúc, cell, và mảng kí tự
Ví dụ:
X(3) là phần tử thứ 3 của X
X([1 2 3]) là ba phần tử đầu tiên của X
Nếu X có N thành phần, X(N:-1:1) đảo lại dãy
X(X>0.5) trả về các phần tử > 0.5 của X
thao tác chỉ số tương tự cho ma trận và mảng
Nếu V có M thành phần và W có N thành phần, thì A(V,W) là ma trậnMxN hình thành từ các phần tử của A, với các chỉ số là phần tử của V và
W Ví dụ, A([1,5],:) = A([5,1],:) hoán vị 2 hàng 1 và 5 của A
{} Được sử dụng để tạo mảng cell Nó tương tự ngoặc vuông [ ] ngoại trừ
cho phép chứa các loại dữ liệu khác nhau
{magic(3) 6.9 'hello'} là mảng khối có 3 phần tử
{magic(3),6.9,'hello'} là mảng giống như trên
{'This' 'is' 'a';'two' 'row' 'cell'} là mảng khối 2x3 Dấu ";" kết thúchàng
{1 {2 3} 4} là mảng khối 3 phần tử, với phần tử thứ 2 là mảng khối.Braces cũng dùng để đánh địa chỉ nội dung mảng khối Thao tác nhưparentheses và trả về nội dung tại địa chỉ đó
Có thể lặp định địa chỉ cho các mảng khối lồng nhau X{1}{2} là nộidung của phần tử thứ 2 của mảng khối trong X Nó hoạt động giống nhưcác cấu trúc lồng nhau, như X(2).field(3).name hoặc tổ hợp các mảng khối
và cấu trúc, như Z{2}.type(3)
Trang 22i,j Biến giá trị ảo i2=j2=-1.
Inf Biến đại diện cho giá trị ∞ hay > realmax, thể hiện kết quả chia cho 0
NaN Giá trị không xác định: 0 chia 0, hoặc ∞-∞
clock Hàm trả về vector cho biết giá trị thời gian hiện tại
date Trả về xâu kí tự tháng-ngày-năm hiện tại
eps Hàm xác định độ chính xác của số thực trong quá trình tính toán
ans Biến lưu giá trị kết quả tính toán gần nhất
b Biến string.
Biến string trong matlab được lưu trong vector vứi mỗi phần tử là 1 kí tự Các kí
tự được lưu trong vector ở dạng mã ASCII, khi hiển thị biến string dòng kí tự sẽ đượchiển thị chứ không phải mã của chúng
Việc xác định vị trí của mỗi phần tử của biến string thông qua chỉ số của nó trong vector Ma trận của các kí tự hay string cũng có thể được sử dụng nhưng mỗi phần tử (hàng của ma trận) phải bằng nhau
Nguyen Hoang Viet
hoặc sử dụng hàm strcat(s1,s2, ) để nối các xâu
-Các hàm với biến string (xem help strfun).
Trang 23str2mat(s1,s2, ) Chuyển dãy xâu s1, s2, thành ma trận, với các hàng là các xâu đã cho,
các xâu ngắn hơn được gán thêm các kí tự trống vào bên phải Kích thước của hàng
là độ dài của xâu kí tự dài nhất.
strvcat(s1,s2, ) Tương tự str2mat, nhưng xâu kí tự rỗng bị bỏ qua
num2str(s,h) Chuyển đại lượng vô hướng s thành xâu kí tự dấu phẩy động, h số
lượng chữ số sau dấu phẩy, giá trị mặc định là 4
int2str(n)Chuyển đổi số nguyên n thành xâu kí tự số.
rats(x,len) Chuyển đổi số có dấu phẩy động x thành xâu kí tự phân thức xấp
xỉ, len là chiều dài của chuỗi trả về, mặc định len=13 Khi chiều dài xâu không đủ cho xâu kí tự trả về, nó sẽ trả về xâu có chứa kí tự '*'
bin2dec(sb) Chuyển đổi xâu kí tự biểu diễn số nhị phân về số thập phân
dec2bin(d,n) Chuyển đổi số thực dương < 252 về xâu kí tự biểu diễn hệ nhị
phân, và đưa về với số bít nhỏ nhất cho bởi n
hex2dec(sb) Chuyển đổi xâu kí tự biểu diễn số thập lục về số thập phân
dec2hex(d,n) Chuyển đổi số thực dương < 252 về xâu kí tự hệ thập lục, và đưa về
với số chữ số nhỏ nhất cho bởi n
base2dec(d,b) Chuyển đổi xâu kí tự biểu diễn số cơ số b (2≤b≤36) về số thập
phân
dec2base(d,b) Chuyển đổi số thực dương < 252 về xâu kí tự cơ số b (2≤b≤36), và
đưa về với số chữ số nhỏ nhất cho bởi n
eval(str) Thực hiện lệnh trong biểu thức của xâu str
vectorize(bt) vectơ hoá biểu thức xâu kí tự bt.
sprintf Trả về xâu kí tự dữ liệu theo định dạng
fprintf In dữ liệu theo định dạng thành xâu kí tự
sscanf Đọc dữ liệu trong xâu kí tự theo theo định dạng
fscanf Đọc dữ liệu từ file theo theo định dạng
lower Hàm chuyển xâu về xâu kí tự thường
upper Hàm chuyển xâu về xâu kí tự hoa
findstr Tìm xâu kí tự con trong xâu kí tự nào đó
eval Thưc hiện câu lệnh trong biểu thức Matlab eval(s), với s là xâu kí tự, thi hành các biểu thức và các câu lệnh ghi trong xâu s
eval(s1,s2) đưa ra tính năng bắt lỗi Nó thi hành xâu s1, nếu không có lỗi nó trở về hệ điều hành Nếu hệ điều hành phát sinh lỗi, xâu kí tự s2 được thi hành trước khi trở về
hệ điều hành Sử dụng như eval('try','catch') Xâu kí tự lỗi phát sinh bởi 'try' có thể nhận từ biến LASTERR
[X,Y,Z, ] = eval(s) trả về các đối theo thứ tự biểu thức có trong s Xâu kí tự vào cho
eval thường eval được tạo bởi kết hợp các xâu con trong ngoặc vuông
Trang 24count = fprintf(fid,format,A, ) định dạng dữ liệu theo các phần thực của ma trận
A (và theo bất kì đối số vào nào) theo xâu kí tự điều khiển dạng thức in dữ liệu và ghifile chỉ đại diện bởi fid count là số byte đã ghi lên fid fid là số nguyên nhận dạng doFOPEN trả về fid =1: Xuất ra thiết bị chuẩn (màn hình), fid =2: Báo lỗi chuẩn Khi
bỏ đối số fid, xuất ra thiết bị chuẩn
format là xâu kí tự chỉ định định dạng theo ngôn ngữ C Chỉ định bắt đầu biến đổibằng kí tự %, các cờ lựa chọn, chiều rộng lựa chọn và kiểu trường, chỉ định kiểu conlựa chọn và các kí tự định dạng d, i, o, u, x, X, f, e, E, g, G, c, and s
Các định dạng đặc biệt \n,\r,\t,\b,\f phát sinh ngắt dòng, xuống dòng, tab, lùi về trước
1 kí tự, về đầu dòng Sử dụng \\ để lấy kí tự "\" và %% để lấy kí tự"%"
fprintf hoạt động giống ANSI C theo chỉ định và mở rộng như sau:
1 Chỉ phần thực của tham số được xử lý
2 Các chỉ định kiểu con không chuẩn cung cấp cho chuyển đổi kiểu là o, u, x, andX
t - Trong C định nhĩa kiểu thực đơn, trong Matlab là kiểu nguyên không dấu
b - Trong C định nhĩa kiểu thực kép, trong Matlab là kiểu nguyên không dấu
Ví dụ, để in ra số thập lục giá trị thực kép sử dụng định dạng như sau '%bx'
3 fprintf sẽ "vectorized" khi A không phải là vô hướng Xâu kí tự định dạng đượclặp lại cho các tất cả các phần tử của A (theo cột) Tương tự cho các tham số
Trang 25[S,ERRMSG] = SPRINTF(FORMAT,A, ) định dạng dữ liệu theo các phầnthực của ma trận A (và theo bất kì đối số vào nào) theo xâu kí tự điều khiển dạngthức, trả về xâu kí tự đã được định dạng vào biến S ERRMSG là đối số lựa chọn trả
về xâu kí tự thông báo lỗi nếu có ma trận rỗng hoặc thiếu đối số yêu cầu trongFORMAT SPRINTF hoat động tương tự FPRINTF ngoại trừ nó trả về xâu kí tự thay
vì ghi lên file
sprintf('The array is %dx%d.',2,3) The array is 2x3
sprintf('\n') is the line termination character on all platforms
FSCANF Đọc dữ liệu từ file
[A,COUNT] = FSCANF(FID,FORMAT,SIZE) đọc dữ liệu từ file chỉ định bởi FID,định dạng dữ liệu được đọc chỉ định bởi xâu FORMAT, và trả về dữ liệu lưu trong
ma trận A COUNT là đối só ra tuỳ chọn cho biết số phần tử đọc được không có lỗi FID là số nguyên chỉ định thiết bị đọc từ FOPEN
SIZE là tuỳ chọn; nó đặt giới hạn số phần tử tối đa đọc từ file; nếu không chỉ định,toàn bộ file được đọc; nếu chỉ định, giá trị hợp lệ là:
N đọc tối đa N phần tử vào vector cột
inf đọc hết cho đến cuối file
[M,N] đọc tối đa M * N phần tử và điền vào ma trận MxN, theo thứ tự cột N cóthể là inf, M phải là số xác định
Nếu chỉ có định dạng kí tự và SIZE không phải dạng [M,N] thì A có dạng vectorhàng
FORMAT là xâu kí tự chỉ định như ngôn ngữ C Chỉ định chuyển đổi được bắt đầubằng kí tự %, lựa chọn kiểu trường dữ liệu, và kí tự chuyển đổi d, i, o, u, x, e, f, g, s,
c, và [ .] (scanset)
Khi kí tự chỉ định %s được sử dụng, phần tử đọc vào sẽ cho mỗi phần tử của ma trận
là 1 kí tự Xâu kí tự được trả về không chứa kí tự trống
Hỗn hợp chỉ định kí tự và số sẽ dẫn tới ma trận kết quả là ma trận số và các kí tự đọcđược là giá trị mã của nó
Quét tới vị trí cuối cùng của xâu S khi NEXTINDEX lớn hơn is độ lớn xâu S
FSCANF khác so với ngôn ngữ C ở khía cạnh sau- nó được "vectorized" theo thứ tựđối số ma trận Xâu kí tự định dạng được lặp lại đến hết xâu S hoặc tổng số lượng lầnđọc vượt quá SIZE
Ví dụ:
S = fscanf(fid,'%s') đọc (và trả về) xâu kí tự
A = fscanf(fid,'%5d') đọc vào số thực với 5chữ số thạp phân
[A,COUNT,ERRMSG,NEXTINDEX] = SSCANF(S,FORMAT,SIZE) đọc dữliêu từ xâu kí tự S, tạo dữ liệu theo xâu định dạng chỉ định FORMAT và trả về matrận A COUNT là đối số ra lựa chọn trả về số phần tử đọc thành công ERRMSG là
Trang 26đối số ra lựa chọn trả về xâu kí tự thông báo lỗi NEXTINDEX là đối số ra lựa chọntrả về số chỉ định kí tự được quét trong S.
SSCANF tương tự FSCANF ngoại trừ nó đọc dữ liệu từ xâu kí tự thay vì đọc từ file.SIZE là tham số lựa chọn; nó đặt giới hạn số phần tử được quét từ xâu S; nếu khôngchỉ định SIZE, toàn bộ xâu S được quét; Nếu chỉ định SIZE, các giá trị hợp lệ là:
N đọc nhiều nhất N phần tử vào vector cột
trả về vector 2 phần tử chứa số gần dúng e và pi
c Khái niệm biến ma trận (scalar, vector, matrix), biến khối và biến cấu trúc.
Matlab cung cấp kiểu biến (lớp đối tượng) là số thực kép (double), kí tự (char),
ma trận, kí hiệu (sym), mảng đối tượng (cell), cấu trúc (struct), biến hàm inline Matlab cung cấp 2 kiểu vô hướng cơ bản:
+Vô hướng thực (double), có độ lớn 8 byte
+Kiểu vô hướng kí tự (char), có độ lớn 2 byte
Các biến vector, ma trận là các mảng thuần tuý chứa các vô hướng thực hoặc kí
tự Các biến này còn gọi là các biến thuần nhất
Biến cell là mảng đối tượng với các phần tử là đối tượng bất kì, có thể là vôhướng, vector, ma trận, xâu kí tự, biến hàm inline, biến sym, biến cấu trúc, inline Biến cấu trúc là dạng biến các phần tử (trường-field) của nó được truy cập theotên của trường, các trường có thể có kiểu vô hướng, vector, ma trận, biến hàm inline,symbolic, cell,
Các biến được phân biệt theo kiểu dữ liệu thông qua hàm class(var), hàm classtrả về biến char chứa xâu kí tự phân loại kiểu dữ liệu ('double', 'char', 'inline', 'sym', 'cell','struct' )
Việc thâm nhập (acess) đến các phần tử dữ liệu:
+Vô hướng thông qua tên: a,x,z
+Vector, ma trận thông qua các chỉ số: A(i,j, ),A(i,j),v(i) +Biến cell thông qua chỉ số (giống vector, ma trận) C{i,j, },C{i,j},a{j}+Biến cấu trúc thông qua tên trường: S.a,S.field2,
Xác định chiều các biến mảng: vô hướng, vector, ma trận Từ lệnh
[m,n, ]=size(var) và p=length(size(var)):
+m=n=1, p=2: Biến var là vô hướng
+m=1, n>1 hoặc n=1, m>1; p=2 Biến vector
+m>1,n>1,p=2 Biến ma trận
Trang 27+p>2 Biến mảng khối.
Xác định số phần tử của biến thuần nhất: members=prod(size(var))
Việc xác định số chiều của biến cell tương tự như biến vô hướng, vector, ma trận
+Các hàm m-files, hàm sử dụng kĩ thuật lập trình cho khả năng mở rộng hàm rấtphong phú, hàm m-files có thể sử dụng tổ hợp các câu lệnh (tương tự script-files), gọicác hàm built-in, gọi các hàm m-files khác và có thể gọi lại chính nó (đệ qui)
Chú ý:
+Nội dung của các hàm inline và m-files có thể thay đổi được
+Để biết tên các hàm đã được gọi trước đây sử dụng lệnh ằ inmem
a Xây dựng các hàm inline và sử dụng.
inline(expr) tạo đối tượng hàm inline từ xâu biểu thức trong xâu kí tự expr Biểuthức expr có dạng biểu thức thông thường viết trong Matlab như các biểu thức toánhọc, các biểu thức logic, các phép toán trên ma trận, xâu kí tự, lời gọi hàm Các đối
số vào được tự động xác định theo tên biến có trong biểu thức Nếu không có biếnnào đối số mặc định là 'x'
inline(expr,arg1,arg2, ) Tạo ra hàm inline có nhiều đối số, các đối số được chỉđịnh bởi các xâu kí tự arg1,arg2, Các kí hiệu biến có thể có tên dài hơn 1 kí tự
inline(expr,N), với N là vô hướng, tạo hàm inline có N+1 đối số vào 'x', 'P1','P2', ,'PN'
Khi sử dụng hàm inline phải truyền đủ tham số cho các biến trong biểu thức
expr, trị trả về của hàm inline xác định theo trị trả về của biểu thức expr Hàm inline
có tác dụng như biến nhớ, do đó chỉ có tác dụng kể từ lúc biến hàm được xây dựngcho đến khi biến hàm bị xoá Có thể lưu trữ và tải từ file dữ liệu như các biến thôngthường
Trang 28Lời gọi hàm như sau: [biến_ra]=tên_hàm(Các_đối_số_vào).
3.3 Các dạng M-file sử dụng trong Matlab.
Có hai loại M-file là script M-file và hàm M-file.
•Không chấp nhận tham số vào
hoặc trả về tham số •Có thể chấp nhận tham số vào và trả về tham số
•Hoạt động trên dữ liệu của
workspace
•Các biến trong thân hàm mặc định
là cục bộ
•Thường dùng để tự động thực
hiện một chuỗi các thao tác cần
thiết để thực thi nhiều lần
•Có tác dụng mở rộng ngôn ngữ MATLAB cho ứng dụng của bạn
Dạng của M-file.
Xem ví dụ dưới đây về các thành phần của một hàm M-file:
Hàm này có một số thành phần chung cho tất cả các hàm MATLAB:
•Dòng định nghĩa hàm Đây là hàm định nghĩa tên hàm, số lượng và trật tự đối
% FACT(N) returns the factorial of N, usually denoted by N!
% Put simply, FACT(N) is PROD(1:N)
Trang 29Tạo M-File: Truy cập chương trình soạn thảo văn bản.
M-file thường là file văn bản, bạn có thể tạo bằng các trình soạn thảo văn bản.MATLAB cũng cung cấp trình soạn thảo văn bản built-in, mặc dù bạn có thể sử dụngchương trình soạn thảo bất kì bạn quen dùng để soạn thảo
Cách để soạn một M-file từ dòng lệnh MATLAB là dùng câu lệnh edit Ví dụ,edit poof
mở trình soạn thảo soạn thảo file poof.m Bỏ qua tên file sẽ mở trình soạn thảosoạn thảo file có tên untitled* (* là các chữ số)
Bạn có thể tạo hàm fact ở trên bằng cách mở trình soạn thảo của bạn, nhập cácdòng đã nêu, và cất văn bản lên file có tên fact.m trong thư mục hiện hành của bạn.Một khi bạn đã tạo file này, sau đây là vài công việc bạn có thể làm:
•Liệt kê danh sách tên các file trong thư mục hiện hành
Các hàm hệ thống tương tác với M-file tại cửa sổ lệnh, trong script và hàm :
echo on Cho phép hiển thị các câu lệnh của script file đang được thực hiện
echo off Không hiển thị các câu lệnh của script file đang được thực hiện.
on/off
Bật/tắt hiển thị các câu lệnh được thực hiện của hàm "func"
echo func Lật trạng thái hiển thị câu lệnh trong hàm "func".
echo on/off all Bật/tắt hiển thị câu lệnh được thi hành của các hàm có trong inmem.
help name Hiện các dòng chú thích đầu tiên, liên tục có trong file "name.m".
type filename Hiển thị nội dung của file có tên filename, mặc định mở rộng là "*.m".
Nếu có 2 file test và test.m câu lệnh "type test" cho nội dung file test, để hiển thị đúng tên file nên có phần mở rộng "type test.m".
dbtype name Tương tự type, nhưng có chỉ số dòng ở đầu dòng của file có tên "name".
which name Cho biết đương dẫn của file "name", mặc định mở rộng là "*.m".
3.3.1 Scrip file.
Script là dạng M-file đơn giản nhất - chúng không có đối số vào và ra Chúng cótác dụng cho việc tự động tính toán một chuỗi các câu lệnh MATLAB, như các phéptính cần tính toán lặp lại nhiều lần các dòng lệnh
Scripts hoạt động trên dữ liệu hiện có trong workspace, hoặc chúng có thể tạo mới
dữ liệu bạn thao tác Bất kì biến nào do script tao ra vẫn được duy trì trongworkspace sau khi script kết thúc, vì thế bạn có thể sử dụng dữ liệu này cho các tínhtoán khác
Trang 30Ta có thể chạy file này giống như các lệnh Matlab Tức là gõ tên file không cóphần mở rộng, sau đó nhấn enter Hoặc chọn menu File/Run Script sau đó gõ tên filehoặc chọn nút bấm browse để chọn file để chạy, sau đó chọn nút Ok.
Tập hợp các câu lệnh, thủ tục sử dụng được tại dòng lệnh cửa sổ command windows đều sử dụng cho script file
Ta có ví dụ về script file "welcome.m":
%Welcome.m, Vi du ve lap trinh trong Matlab
%Welcome to you !
%written by Nguyen Hoang Viet
disp('Hello ! What are you?');
name=input('What''s your name?','s');
Ví dụ hàm đơn giản.
Hàm average là M-file đơn giản tính toán giá trị trung bình của các phần tử củavector
function y = average(x)
% AVERAGE Mean of vector elements.
% AVERAGE(X), where X is a vector, is the mean of vector elements.
% Non-vector input results in an error.
[m,n] = size(x);
if (~((m == 1) | (n == 1)) | (m == 1 & n == 1))
error(’Input must be a vector’)
end
y = sum(x)/length(x); % Actual computation
Nếu bạn muốn, thử nhập các lệnh vào M-file có tên average.m
Hàm average chấp nhận một đối số vào và trả về một đối số ra Gọi hàm average,nhập: