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

GIÁO TRÌNH MATLAB

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 (2.35 MB, 165 trang )



Page 1 of 62
start 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ữ Matlab


Ch-ơ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ạ.


1.8 Các hàm âm thanh.

Ch-ơng 2. Ma trận và các phép toán ma trận


2.1 Vô h-ớng, vector và ma trận.


2.2 Các ma trận đặc biệt.


2.3 Các phép toán vô h-ớng


2.4 Các phép toán ma trận

Ch-ơng 3. Lập trình trong Matlab


3.1 Các phần tử cơ bản


3.2 Hàm và tạo hàm


3.3 Câu lệnh Cấu trúc



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


5.1. Hàm đồng mức (contour).


5.2. Chia l-ới.


5.3. Đồ hoạ 3D.


5.4. Mặt l-ới đồ hoạ 3D.


5.5. Đồ hoạ bề mặt.



5.6. Điểm nhìn và phép phối cảnh.


5.7. Mặt cắt (slice).


5.8. Mầu sắc và các hệ màu







Page 2 of 62
part II
matlab symbolic

part III
numerical method


Page 3 of 62
Basic concepts
ma trËn (matrix):

vÐc t¬ (vector):


v« h-íng (scalar):

kiÓu khèi(cell):






Page 4 of 62

Phầ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àn
phí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:
+Xử lý các ma trận thực, phức, các xâu kí tự.
+Kết hợp phép tính logic với số học
+Các hàm đồ hoạ mạnh và dễ dàng kết hợp với quá trình tính toán.
+Hỗ trợ các công cụ mạnh cho các ứng dụng cụ thể
-Chế độ làm việc:
+Hội thoại ng-ời-máy (user-machine at command window): Cho phép nhập lệnh
từ bàn phím và thu đ-ợc các kết quả sử lýlệnh từ máy tính.
+Chế độ lập trình: Các lệnh đ-ợc chuẩn bị trên một file ch-ơng trình và cho

phép chạy ch-ơng trình từ các file lệnh này.
-Có nhiều phiên bản khác nhau (versions), cho phép chạy trên các máy tính có hệ điều
hành khác nhau nh- DOS, UNIX, APPLE, WINDOWS, LINUX

-Với Matlab, các vấn đề cần giải quyết của bạn sẽ đ-ợc phân tích và xử lý theo 5 b-ớc
nh- sau
[1]
:
B-ớc 1: Đặt vấn đề.

Bài toán đặt ra cần đ-ợc phân tích, biểu diễn một cách rõ ràng và cụ
thể. Đây là b-ớc mở đầu rất quan trọng, nó quyết định toàn bộ h-ớng
giải quyết tiếp theo của bài toán đặt ra.
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ác
tham 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 đó trong các
b-ớc. Mặc dầu vậy, ta vẫn chỉ ra đ-ợc những thông tin để tính toán
luồ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ạn
ch-a lấy đ-ợc dữ liệu hay ch-a tính đ-ợc đầu ra thì có thể chuyển sang
b-ớ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


Page 5 of 62
toá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 đ-ợc
kiểm tra bằng các dữ liệu đầu vào. Matlab thực hiện bài toán và cho
bạ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ằng
tay và thao tác bằng Matlab.



Page 6 of 62
Ch-ơ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
nóng Ctrl+C .
-Để thoát ra khỏi môi tr-ờng làm việc Matlab, chúng ta có thể sử dụng các lệnh của
Matlab là : ằ quit hoặc ằ exit

1.2 Các phím chuyên dụng và các lệnh thông dụng hệ thống.

Các phím lệnh thông dụng:
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.
Ctrl-k
Xoá từ con trỏ đến cuối 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.


Page 7 of 62
which
Cho biết đ-ờng dẫn của 'file_name'.

1.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.
who
Hiển thị tên các biến.
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 p2.
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ố


Page 8 of 62
cho phép mặc định của pinv, rank và các hàm khác.
pi
Trả về trị 3.1415926535897
realmax
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 z
1
=a
1
+i*b
1
, z
2
=a
2
+i*b
2
, với a
1
,a
2
,b
1
,b
2
là các số thực.
Phép toán
Kết quả
z
1
z
2

(a
1

+a
2
)i(b
1
+b
2
)
z
1
*z
2

(a
1
*a
2
-b
1
*b
2
)+i(a
1
*b
2
+a
2
*b
1
)
2

1
z
z

2
2
2
2
21122121
)*()**(
ba
babaibbaa



|z
1
|
2
1
2
1
ba

Độ lớn (magnitude)hay modul của số phức.
z
1
*
a
1

-ib
1

Số phức liên hợp.

1.4.2 Một số hàm đặc biệt của số phức.

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
ba
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
22
a
b
ba






ng-ợc lại:

).sin(
),cos(




b
a




(a,b)
y
a
x
b


Hình Biểu diễn số phức


Page 9 of 62
Trong hệ toạ độ cực: độ lớn (magnitude) và pha (phase) của số phức sẽ đ-ợc tính
toán nh- sau:
>>r=abs(z);
>>theta=angle(z);
Biểu diễn số phức theo độ lớn và phase nh- sau:
>>z=r*axp(i*theta);
Trong hệ toạ độ đềcác, phần thực (real) và phần ảo (imaginary) se đ-ợc tính toán
nh- sau:
>>a=real(z);
>>b=imag(z);
Biểu diễn số phức:
>>z=a+i*b;

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.

Ví dụ : Giải ph-ơng trình 3x
2
-2x-1=0; và ax
2
+bx+c=0;
ằ eq=[3 -2 -1];
ằ n0=roots(eq)

n0 =

1.0000
-0.3333

ằ syms a b c x;
ằ eq=a*x^2+b*x+c;
ằ n0=solve(eq,x)

n0 =

[ 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).


Page 10 of 62
+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.

1.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ựcplot(i=1:length(y),y).
nếu y là số phứcplot(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ị.

Ví dụ:
ằ t=linspace(0,2*pi,40);
ằ plot3(sin(t),t.*cos(t),t);
ằ title('Vi du ve ham 3D');
ằ xlabel('x'),ylabel('axis y'),
ằ zlabel('t'), grid on;





1.7.2 In ấn trên cửa sổ đồ hoạ.
Việc in các ảnh đồ hoạ có thể thực
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(x
2
+1) trong khoảng -2x2.
ằ x=linspace(-2,2);
ằ y1=sin(x);y2=x.*cos(x);y3=log(x.^2+1);
ằ plot(x,y1,x,y2,x,y3);
ằ legend('sin(x)','xcos(x)','ln(x^2+1)');
-1
-0.5
0
0.5
1
-5
0
5
10
0
2
4
6
8
x
Vi du ve ham 3D
axis y
t

Hình Đồ thị không gian 3D



Page 11 of 62
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
-1
-0.5
0
0.5
1
1.5
2
sin(x)
xcos(x)
ln(x
2
+1)

Vẽ đ-ờng cong tham số cho bởi ph-ơng trình:








;13
;13
3
3
tty
ttx

ằ 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
,)3(),(
)(22

22
yx
eyxyxfz


trong không gian 2D.
ằ [x,y]=meshgrid(linspace(-2,2));
ằ z=(x.^2-3*y.^2).*exp(-(x.^2+y.^2));pcolor(x,y,z);
ằ shading interp; colorbar;
















-6 -4 -2 0 2 4 6 8
-20
-15
-10
-5

0
5
10
15
20
x
y
Do thi duong cong tham so

Hình

Hình


Page 12 of 62
1.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á -1y1, 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)]


Page 13 of 62
ch-ơng 2
Ma trận và các phép toán ma trận
2.1 Vô 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:

Ma trận (mxn)
Vector cột v
c
, vector hàng v
r
















mnmm
n
n
mn
aaa
aaa
aaa
A




21
22221
11211

















q
c
v
v
v
v

2
1


pr
vvvv
21


Với a
ij
(i=1 n; j=1 m), v
k
(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 v
r
là (1xp), của v

c
là (qx1), của vô h-ớng là (1x1).
Độ lớn hay chiều dài của vector v
r
là p, của v
c
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.1 Nhậ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=[a
11
,a
12
,a
13
; a
21
a
22
,a
23
; a
31

a
32
a
33
];
+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.
>>c=5.8978; %vô h-ớng
>>b=[1.2 -2 3.01 4+i*3.234]; %vector hàng
>>e=[-2;3;i]; %vector cột
>>A=[1 0 0; 0 1 0; 0 0 1]; %ma trận 3x3
Có thể xuống dòng để phân biệt từng hàng của ma trận.
>>e=[-2
3


Page 14 of 62
i];
>>A=[1 0 0
0 1 0
0 0 1];
Có thể định nghĩa ma trận từ các phần tử khác.
>>a=[1 2.4 -4.7];
>>b=[1.3 -34.67 a];

>>A=[a;a];
Ma trận b có giá trị là [1.3 -34.67 1 2.4 -4.7];
Ma trận A có giá trị là[1 2.4 -4.7;1 2.4 -4.7];
Truy cập các phần tử của ma trận bằng cách sử dụng chỉ số của nó:
>>s=a(3); %s có giá trị là -4.7
>>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ệnh
sau: >>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ảy
format long
Số dấu phẩy cố định, với 15 chữ số có nghĩa sau dấu phảy
format 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ảy
format 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ảy
format 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ảy
format rat
Biểu thị số thực về số hữu tỉ gần nhất.


Page 15 of 62
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.

2.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.
Ma trận mxn
Giải thích

Ma trận vuông nxn
rezos(m,n)
ma trận không
rezos(n)
ones(m,n)
ma trận đơn vị
ones(n)
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.1 Biểu thức số học cho vô h-ớng.
Phép toán
Biểu thức số học
Matlab
Cộng
a+b
a+b
Trừ
a-b
a-b
Nhân
a.b
a*b
Chia
a/b
a/b
Chia trái
b:a
a\b
Luỹ thừa
a

b
a^b

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.
Thứ tự -u tiên
Toán tử
1
Ngoặc đơn ().
2
Gọi hàm.
3
Luỹ thừa.
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.


Page 16 of 62
Phép toán
Công thức
Matlab
Cộng
a+b
a+b
Trừ

a-b
a-b
Nhân mảng
a.b
a.*b
Chia phải mảng
a/b
a./b
Chia trái mảng
a\b
a.\b
Luỹ thừa mảng
a
b

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
vô h-ớng.
Ví dụ:
A=[1 2 3;7 -6 5;3 0 -1];
B=[1.1 2.4 5.6;-1 -3.6 8;-3 2 -1];
a=[1 2 7 -2];
b=[1 0 2 2];
c=2;
A.*B
ans =
1.1000 4.8000 16.8000
-7.0000 21.6000 40.0000
-9.0000 0 1.0000


a.*b
ans =
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
ans =
1 1 49 4
A.^B
ans =
1.0e+005 *
0.0000 0.0001 0.0047
0.0000 0.0000 + 0.0000i 3.9063
0.0000 0 -0.0000

A.^c
ans =
1 4 9
49 36 25
9 0 1
A+B
ans =
2.1000 4.4000
8.6000
6.0000 -9.6000

13.0000
0 2.0000 -
2.0000
B+c
ans =
3.1000 4.4000
7.6000
1.0000 -1.6000
10.0000
-1.0000 4.0000
1.0000
a+b
ans =
2 2 9 0
b.^c
ans =
1 0 4 4
c.^a
ans =
2.0000 4.0000 128.0000
0.2500
a+c
ans =
3 4 9 0
c./a
ans =
2.0000 1.0000 0.2857 -
1.0000

2.4 Các phép toán ma trận




Page 17 of 62
2.4.1 Các phép toán ma trận.

Phép toán
Công thức
Matlab
Chuyển vị
B
nm
=A
T
mn
với

B={b
ịj
=a
ji
}
nm
A.'
Chuyển vị và lấy liên hợp phức
B
nm
=A
T
mn

với B={b
ịj
=a*
ji
}
nm
A'
Cộng, trừ
{a
ij
b
ij
}
mn
=A
mn
B
mn
AB
Nhân
{



n
k
kjikij
bac
1
}

mp
=A
mn
*B
np

A*B
Chia phải
C
np
=A
mn
/B
pm
A/B
Chia trái
C
qn
=A
pq
\B
pn
A\B
Luỹ thừa ma trận
A
p
nn
, (p-nguyên)
A^p
Ma trận nghịch đảo

A
-1
nn

inv(A), A^(-1)
Ma trận tựa nghịc đảo
T
nm
=A
-1
mn

pinv(A)
Tích vô h-ớng của hai ma trận
n
m
j
ijijimnmn
bacBA
1
1













sum(A.*B)
tích vô h-ớng của
các cột
Kí hiệu vế phải là kết quả của phép toán, chỉ số mxn là cho ma trận bất kì, chỉ số
nxn là chỉ cho ma trận vuông; trong các công thức có cùng chỉ số là bắt buộc phải
thoả mãn mới áp dụng đ-ợc phép toán.
Ví dụ:
A=[1 2 3; 4 -5 6];
D=[i 2 -6;5 4 2-i];
E=[1;i;-3];
B=[1 -1;-1 2];
C=[1 -1;2 -1;-1 3];
A+D
ans =
1.0000 + 1.0000i 4.0000 -3.0000
9.0000 -1.0000 8.0000 - 1.0000i
D.'
ans =
0 + 1.0000i 5.0000
2.0000 4.0000
-6.0000 2.0000 -
1.0000i
A*E
ans =
-8.0000 +
2.0000i
-14.0000 - 5.0000i

B*A
ans =
-3 7 -3
7 -12 9
D'
ans =
0 - 1.0000i 5.0000
2.0000 4.0000
-6.0000 2.0000 - 1.0000i
inv(B)
ans =
2 1
1 1
B^3
ans =
5 -8
-8 13
pinv(A)
ans =
0.0310 0.0471
0.2291 -0.1006
0.1702 0.0514
B*inv(B)
ans =
1 0
0 1
A*pinv(A)
ans =
1.0000 -0.0000
0.0000 1.0000

pinv(E)
ans =
0.0909 0 - 0.0909i -0.2727


Page 18 of 62
A\D
ans =
0 0 0
-0.5556 + 0.2222i 0.0000 -1.5556
+ 0.1111i
0.3704 + 0.1852i 0.6667 -0.9630 - 0.0741i
A/D
ans =
-0.3023 - 0.0284i 0.3874 +
0.0562i
-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:
Hàm
Thao tác
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.
B
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.
Thao tác các phần tử của ma trận.

A(i,j)
i=1,m; j=1,n
Thao tác phần tử a
ij
của ma trận A.
[m,n]=size(A).
:
Toán tử
x=a:d:b
y=a:b
Tạo vector hàng x=a:d:b, tạo cấp số p phần tử (p=[(b-a)/d], p là
phần nguyên) x(i)=a+i*d với i=1,2, ,p.
b>a nếu d>0.
b<a nếu d<0.
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.
end
Toán 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.



Page 19 of 62
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.


Các hàm lọc ma trận:
find(exprA)

find(A)
Trả về chỉ số các phần tử của A thoả mãn biểu thức
logic exprA của A.
Trả về vị trí các phần tử của A khác không.
y=A(exprA)
y=A(A>0)
y=A(fimag(A)==0)
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:
A=[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


Page 20 of 62
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
-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



Page 21 of 62

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


Page 22 of 62
Ch-ơng3
Lập trình trong matlab
3.1. Các phần tử cơ bản

3.1.1 Giới hạn giá trị số.

Các giá trị số trong Matlab cho phép trong khoảng từ realmin đến realmax. Các
giá trị số lớn hơn giá trị realmax sẽ gây lỗi tràn trên (exponent overflow). Giá trị của
kết quả lớn hơ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à Inf.
Ví dụ:
ằ a=realmax*1e2
a =

Inf
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.
ằ b=realmin*1e-16
b =

0

3.1.2 Các kí tự đặc biệt.

:
Cách ghi ma trận tổng quát.
()
Ngoặc đơn.
[]
Định nghĩa ma trận.
{}
Định nghĩa biến cell.
.
Dấu thập phân.
.

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ấu
trúc nh- X(2).field(3).name. Có thể kết hợp cấu trúc, mảng khối, ngoặc chỉ
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.


Page 23 of 62
Để 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ị.
'
Toán tử chuyển vị và lấy liên hợp phức.
[,]
Ghép các phần tử theo hàng ngang.
[;]
Ghép các phần tử theo hàng dọc.
()
Thao tác phần tử.
Ngoặc đơn đ-ợc sử dụng -u tiên trong các biểu thức số học và chứa
đựng các tham số của hàm. Chúng đ-ợc sử dụng để đánh chỉ số cho
vector, ma trận. Nếu X và V là các vector, thì X(V) là [X(V(1)), X(V(2)), ,
X(V(N))]. Các phần tử của V phải là các số nguyên làm chỉ 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ến
logic, các phần tử khác không của V xác định mặt nạ lên mảng X . Mảng
logic đ-ợc phát sinh do các toán tử quan hệ và toán tử locgic hay câu
lênhl logic. Ngoặc đơn đ-ợc đ-ợc hỗ trợ của tất cả các kiểu dữ liệu trong
Matlab 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ận
MxN 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úc hà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ỉ đó.
Ví dụ:
X{3} là nội dung phần tử thứ 3 của X.
X{3}(4,5) là thành phần (4,5) cảu phần tử thứ 3.
X{[1 2 3])} là danh sách 3 phần tử cho trong vector chỉ số. Nó
t-ơng tự nh- X{1},X{2},X{3} and makes sense inside [] ,{}, or in function
input or output lists (see LISTS).
Có thể lặp định địa chỉ cho các mảng khối lồng nhau X{1}{2} là nội dung
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).
[]
Để sinh các vector và ma trận.
[6.9 9.64 SQRT(-1)] là vector 3 thành phần phân cách nhau bằng


Page 24 of 62
dấu cách. [6.9, 9.64, sqrt(-1)] t-ơng tự nh- trên.
[1+I 2-I 3] và [1 +I 2 -I 3] không giống nhau. Vector đầucó 3 phần tử,
vector thứ 2 có 2 phần tử.
[11 12 13; 21 22 23] là ma trận 2x3. Dờu ";" kết thúc hàng đầu tiên.
Các vector và ma trận có thể nối với nhau bởi ngoặc vuông [].
[A B; C] là hợp lệ nếu số hàng của A bằng số hàng của B và bằng số

cột của C.
A = [] sinh ma trận rỗng A.
Sử dụng [ và ] ở vế trái của phép gán = ở các câu lệnh gán nhiều biến,
xemcác hàmLU, EIG, SVD và các hàm khác.

3.1.2 Biến.

a. Các biến giá trị đặc biệt.

pi
Giá trị của số .
i,j
Biến giá trị ảo i
2
=j
2
=-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ẽ đ-ợc
hiể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.
Ví dụ:
ằ test='Wellcome to ITIMS''2000'
test =

Wellcome to ITIMS'2000
-Đảo ng-ợc xâu kí tự.
ằ daotu=test(end:-1:1)
daotu =

0002'SMITI ot emoclleW
-Trích 1 phần của xâu kí tự.
ằ test(1:8)
ans =

Wellcome
-Kết hợp các xâu kí tự:


Page 25 of 62
ằ hodem='Nguyen Hoang';ten='Viet';
ằ hoten=[hodem ' ' ten]
hoten =


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).
abs(str)
double(str) Trả lại giá trị là 1 vector với các phần tử là các mã của các kí tự
trong chuỗi str.
char(x) Chuyển vector x với các phần tử là các số nguyên 0->65535 thành chuỗi str
theo mã của chúng.
str2mat(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 < 2
52
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 < 2
52
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 (2b36) về số thập
phân.

dec2base(d,b) Chuyển đổi số thực d-ơng < 2
52
về xâu kí tự cơ số b (2b36), 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ề

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×