BƯỚC ĐẦu làm việc với matlab giới thiệu


Một số thao tác cơ bản trong MATLAB



tải về 0.69 Mb.
trang2/4
Chuyển đổi dữ liệu06.06.2018
Kích0.69 Mb.
1   2   3   4

Một số thao tác cơ bản trong MATLAB
Trong MATLAB, thanh trình đơn thay đổi tùy theo cửa sổ mà ta lựa chọn. Tuy vậy các trình đơn File, Desktop, Window, Help có mặt hầu hết trong các thanh trình đơn.
Trình đơn File:

  • New: tạo một đối tượng mới (biến, m-file, figure, model, GUI).

  • Open: mở một file theo định dạng của MATLAB (*.m, *.mat, *.mdl)

  • Import data…: nhập dữ liệu từ các file khác vào MATLAB.

  • Save workspace…: lưu các biến trong MATLAB vào file *.mat.

  • Set path: khai báo các đường dẫn của các thư mục chứa các m-file.

  • Preferences: thay đổi các định dạng về font, font size, color cũng như các tùy chọn cho Editor, Command Window v.v.

  • Page Setup: định dạng trang in.

  • Print: in.

Trình đơn Desktop:



  • Desktop layout: sắp xếp các cửa sổ trong giao diện.

  • Save layout: lưu cách sắp xếp cửa sổ.

Trình đơn Window dùng để kích họat (activate) cửa sổ.


Nút Start cung cấp shortcut tới các công cụ trong MATLAB
Biến
Tên của biến:

  • có thể chứa tới 31 ký tự.

  • phân biệt chữ hoa và thường.

  • có thể chứa gạch thấp “_”

  • bắt đầu bằng chữ cái.

MATLAB không yêu cầu ta phải khai báo kích thước của biến. Để tạo một biến mới ta chỉ cần gỏ tên biến, dấu bằng và giá trị gán cho biến. Nếu biến đã tồn tại trong MATLAB, giá trị của nó sẽ được thay đổi.



Ví dụ:

>> variable_1=25;


Nếu ta chỉ nhập tên biến, giá trị của biến sẽ hiễn thị trong Command Window

Ví dụ:

>>variable_1

25

>>
Lưu ý rằng trong MATLAB nếu ta kết thúc câu lệnh bằng dấu “;” thì Command Window sẽ không hiễn thị kết quả tính tóan ra màn hình.



Ví dụ:

>> variable_1;

>>
Để hiện thị các câu lệnh đã nhập trứơc vào Command Window ta có thể dùng phím Arrow.
Một số tên biến được dành riêng cho MATLAB:


  • pi: số pi.

  • i, j: số ảo.

  • inf: vô cùng.

  • NaN: không phải là số.


Tóan tử
Các tóan tử cơ bản :

  • + : cộng.

  • - : trừ.

  • * : nhân.

  • / : chia.

  • \ :chia bên trái (dùng cho ma trận).

  • ^ : lũy thừa.

  • ‘: hóan vị.

  • ( ) (dấu ngoặc): thứ tự ưu tiên tính tóan.


Hàm
Chương trình MATLAB cung cấp một tập hợp rất lớn các hàm tóan học :

  • Hàm tóan sơ cấp (elemetary functions): như sin, cos, tan, atan, log, log10, exp, sqrt, round, ceil, floor, sum,min, max, mean, abs.

  • Hàm tóan chuyên dụng: như besselj (Bessel function of the first kind), bessely (Bessel function of the second kind), beta (Beta function),erf (Error function),gamma (Gamma function), primes (Generate list of prime numbers), cart2sph (Transform Cartesian to spherical coordinates) v.v.

  • Hàm chuyên dụng cho ma trận.

Lưu ý:


  • Để xem các danh sách các hàm mà MATLAB cung cấp ta dùng lệnh: help elfun, help specfun, help elmat.

  • Để biết cách sử dụng một hàm ta dùng lệnh help theo sau bởi tên của hàm.

Ví dụ:

>> help sine


Biểu thức
Biểu thức trong MATLAB bao gồm biến, dấu “=”, các tóan tử và hàm

Ví dụ:

>> variable_2=sine(5)+(4+variable_1)*exp(2);


Kiểm sóat chế độ nhập xuất dữ liệu cho Command Window
Hàm format:
Hàm format kiểm sóat định dạng xuất ra màn hình của các giá trị. Hàm này chỉ kiểm sóat định dạng xuất ra mà không ảnh hưởng tới định dạng của dữ liệu được lưu trữ.
Ví dụ:

>> x = [4/3 1.2345e-6];

>> format short

1.3333 0.0000

>> format short e

1.3333e+000 1.2345e-006

>>format short g

1.3333 1.2345e-006

>>format long

1.33333333333333 0.00000123450000

>>format long e

1.333333333333333e+000 1.234500000000000e-006

>>format long g

1.33333333333333 1.2345e-006

>>format bank

1.33 0.00

>>format rat

4/3 1/810045

>>format hex

3ff5555555555555 3eb4b6231abfd271


Dùng chỉ mục Preferences/ Command Window để thay đổi định dạng của Command Window
Không xuất kết quả ra màn hình:

Dùng dầu “;” ở cuối câu lệnh để Command Window không xuất kết quả ra màn hình.


Câu lệnh quá dài

Nếu câu lệnh quá dài ta dùng dấu 3 chấm “…” để thông báo câu lệnh được tiếp tục ở dòng tiếp theo.



Ví dụ:

>>s = 1 -1/2 + 1/3 -1/4 + 1/5 - 1/6 + 1/7 ...

-1/8 + 1/9 - 1/10 + 1/11 - 1/12;
Ma trận
Trong MATLAB ma trận là một array chứa các dữ liệu. Để nhập một ma trận vào MATLAB ta có thể dùng các cách sau:


  • Nhập trực tiếp vào Command Window.

  • Nhập từ các file dữ liệu.

  • Dùng các hàm trong MATLAB.


Nhập trực tiếp vào Command Window:
Ví dụ:

>> my_vector = [1 2 3]

my_vector =

1 2 3


>> my_matrix = [1 2 3; 4 5 6; 7 8 9]

my_matrix =

1 2 3

4 5 6


7 8 9

>> my_matrix = [1 2 3

4 5 6

7 8 9]


my_matrix =

1 2 3


4 5 6

7 8 9
Nhập từ các file dữ liệu:

Dùng menu File/ Import Data…để chọn file dữ liệu mà ta muốn nhập vào MATLAB.
Dùng các hàm trong MATLAB:


  • Hàm ones(r,c) tạo một ma trận có r hàng và c cột với các giá 1.

  • Hàm zeros(r,c) tạo một ma trận có r hàng và c cột với các giá 0.

  • Hàm eye(r) tạo một ma trận có r hàng và r cột với các giá 1 tại đường chéo và giá trị 0 tại các phần tử còn lại.

  • rand(r,c) tạo một ma trận có r hàng và c cột với các giá trị ngẫu nhiên từ 0 tới 1 theo phân bố uniform.

  • randn(r,c) tạo một ma trận có r hàng và c cột với các giá trị ngẫu nhiên theo phân bố Normal đơn vị.


Chỉ số của ma trận
Để truy cập tới các giá trị trong ma trận ta dùng chỉ số.

Ví dụ:

>> A=[1 2 3; 4 5 6; 7 8 9];

>> A(1,2)

ans =


2

>>A(end,end)

9
Tóan tử : (2 chấm)
Đây là một tóan tử đặc biệt của MATLAB.

Ví dụ:

>>1:5


ans =

1 2 3 4 5

>>1:2:10

ans =


1 3 5 7 9

>>10:-3:1

ans =

10 7 4 1


>> A=[1 2 3; 4 5 6; 7 8 9];

>>A(2,1:3)

ans=

4 5 6
Thay đổi kích thước của ma trận


Concatenation- kết hợp các ma trận

Ví dụ:

>>a=[1 2 3];

>>b=[4 5 6];

>>ab=[a ; b]

ab=

1 2 3


4 5 6

>>ab=[a b]

ab=

1 2 3 4 5 6


Xóa một hàng hay cột của ma trận

Ví dụ:

>>a=[ 1 2 3

4 5 6

7 8 9];


>> a(2,:)=[]

a =


1 2 3

7 8 9

>>a=[ 1 2 3

4 5 6


7 8 9];

>> a(:,2)=[]

a=

1 3


4 6

7 9


>>>>a=[ 1 2 3

4 5 6


7 8 9];

>> a(1:2,:)=[]

a=

7 8 9
Các tóan tử cho ma trận




  • A+B : cộng ma trận A và B (2 ma trận cùng kích thuớc)

  • A - B : trừ ma trận A và B (2 ma trận cùng kích thuớc)

  • A*B : nhân ma trận (số cột của A bằng số hàng của B)

  • A.*B : nhân từng phần tử của A và B (A, B cùng kích thước)

  • inv(A) : nghịch đảo A

  • B/A= (A'\B')' hay xấp xỉ B*inv(A)

  • B./A: chia từng phần tử của B cho A (A, B cùng kích thước).

  • A\B: nếu A là ma trận vuông, A\B xấp xỉ inv(A)*B. Nếu A là ma trận nxn và B là vector cột với n phần tử thì X = A\B là lời giải cho hệ đảng thức AX = B.

  • A.^B: lũy thừa từng phần tử của A với từng phần tử của B.


Structure
Để thuận tiện cho việc quản lý và sử dụng, ta có thể tập hợp nhiều biến lại trong một structure. Một structure đựơc tao như sau:

struct(‘name_1’, value_1,’name_2’, value_2,…)

trong đó name_* là tên của field là thành phần của một structure và value_* là giá trị mà ta cần gán cho field.


>> myst=struct(‘data’, [1 2 3], ‘name’,’John Down’)

myst =


data: [1 2 3]

name: 'John Down'


Để truy cập dữ liệu trong structure ta dùng dấu “.”

>>myst.data(1)+1

ans =

2
Optimization toolbox


Bộ công cụ tối ưu hóa cho phép:

  • Tối thiểu phi tuyến không ràng buộc (Unconstrained nonlinear minimization)

  • Tối thiểu phi tuyến có ràng buộc (Constrained nonlinear minimization)

  • Quy họach tuyến tính và tòan phương (Quadratic and linear programming)

  • Nonlinear least squares and curve-fitting


Hàm bintprog(f, A, b, Aeq, beq, x0)

Dùng để giải bài tóan quy họach ngưyên (binary integer programming)





st




Ví dụ:

min -9x1 -5x2 -6x3 -4x4

st

6x1+3x2+5x3+3x2 ≤ 9



x3+ x4 ≤ 1

-x1 +x3 ≤ 0

-x2 +x4 ≤ 0

x1,x2,x3,x4 là nhị phân

>> f=[-9 ; -5 ; -6 ; -4] ;

>>A=[6 3 5 2 ; 0 0 1 1 ; -1 0 1 0 ; 0 -1 0 1] ;

>>b=[9 ; 1 ;0 ; 0] ;

>>x=bintprog(f,A,b)

x =

1

1



0

0
Hàm linprog(f,A,b,Aeq,beq,lb,ub)



Dùng để giải bài tóan quy họach tuyến tính


st






Ví dụ:

min -5x1 -4x2 -6x3

st

x1 – x2 + x3 ≤ 20



3x1 + 2x2 + 4x3 ≤ 42

3x1 + 2x2 ≤ 30

0 ≤ x1, 0 ≤ x2, 0≤ x3
>>f=[-5 ; -4 ; -6]

>>A=[1 -1 1 ; 3 2 4 ; 3 2 0] ;

>>b=[20 ; 42 ; 30] ;

>>lb=zeros(3,1) ;

>>x=linprog(f,A,b,[],[],lb)

x =


0.0

15.0


3.0
Hàm x = fminbnd(fun,x1,x2)

Tìm cực tiểu của hàm fun(x) với x1 ≤ x ≤ x2


Ví dụ:

Tìm cực tiểu hàm 0.5x3-x2-x+exp(0.1x)

>> f1=inline('0.5*x^3-x^2-x+exp(0.1*x)','x')

f1 =


Inline function:

f1(x) = 0.5*x^3-x^2-x+exp(0.1*x)

>> [x,fval]=fminbnd(f1,0, 3)

x =


1.6827

fval =


-0.9487
Hàm fiminunc(fun,x0)
Tìm cực tiểu của hàm đa biến fun (x là vector)
Ví dụ:

>>f2=inline('2*x(1)^4+x(2)^4-2*x(1)^2-2*x(2)^2+4*sin(x(1)*x(2))','x')

f2 =

Inline function:



f2(x) = 2*x(1)^4+x(2)^4-2*x(1)^2-2*x(2)^2+4*sin(x(1)*x(2))

>> [x,fval]=fminunc(f2,[1 -1])

x =

0.9039 -1.1732



fval =

-4.6476
Hàm fmincon(fun,x0,A,b,Aeq,beq,lb,ub)


min hàm phi tuyến

fun(x)

st






Ví dụ:

min f(



1   2   3   4


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2019
được sử dụng cho việc quản lý

    Quê hương