Lập trình Matlap
lượt xem 179
download
Tổng quan và các đặc điểm của Matlab Chương trình MATLAB là một chương trình viết cho máy tính PC nhằm hỗ trợ cho các tính toán khoa học và kĩ thuật với các phần tử cơ bản là ma trận trên máy tính cá nhân do công ty "The MATHWORKS" viết ra. Thuật ngữ MATLAB có được là do hai từ MATRIX và LABORATORYghép lại. Chương trình này hiện đang được sử dụng nhiều trong nghiên cứu các vấn đề tính toán của các bài toán kĩ thuật như: Lý thuyết điều khiển tự động, kĩ thuật thống kê xác suất, xử lý số các tín...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lập trình Matlap
- 1 GIỚI THIỆU CHUNG............................................................................................1 1.1 Tổng quan và các đặc điểm của Matlab........................................................1 1.2 Giao diện và các cửa sổ chính của Matlab....................................................2 2 CÁC KHÁI NIỆM CƠ BẢN...................................................................................3 2.1 Hoạt động của Matlab trong cửa sổ lệnh.....................................................3 2.1.1 Những đặc điểm của cửa sổ lệnh.............................................................3 2.2 Các loại biến, hàm toán học cơ bản trong Matlab........................................5 2.2.1 Biến trong Matlab........................................................................................5 2.2.2 Các hàm toán học thông thường.................................................................5 2.2.3 Số phức...................................................................................................7 3 MA TRẬN VÀ CÁC PHÉP TOÁN MA TRẬN.......................................................9 3.1 Mảng đơn........................................................................................................10 3.2 Địa chỉ của mảng...........................................................................................11 3.3 Cấu trúc của mảng........................................................................................12 3.4 Vector hàng và vector cột................................................................................14 3.5 Các phép toán đối với mảng..........................................................................16 3.5.1 Phép toán giữa mảng với số đơn..............................................................16 3.5.2 Phép toán giữa mảng với mảng................................................................17 3.5.3 Mảng với lũy thừa.....................................................................................19 3.6 Mảng có phần tử là 0 hoặc 1 .........................20 3.7 Thao tác đối với mảng...................................................................................20 3.8 Tìm kiếm mảng con........................................................................................25 3.9 So sánh mảng..................................................................................................26 3.10 Kích cỡ của mảng........................................................................................29 3.11 Mảng nhiều chiều.......................................................................................31 3.12 Các ma trận đặc biệt....................................................................................33 4 LẬP TRÌNH TRONG MATLAB............................................................................35 4.1 Script M_file.....................................................................................................35 4.2 Các phép tính logic và quan hệ......................................................................38 4.2.1 Toán tử quan hệ.........................................................................................38 4.2.2 Toán tử logic ..........................................................................................40 4.2.3 Các hàm quan hệ và hàm logic..................................................................41 4.3 Vòng lặp điều kiện.........................................................................................42 4.3.1 Vòng lặp for...............................................................................................42 4.3.2 Vòng lặp while..........................................................................................45 4.4 Cấu trúc điều kiện.........................................................................................46 4.4.1 Cấu trúc if-else-end ..............................................................................46 4.4.2 Cấu trúc switch-case..................................................................................48 5 ĐỒ HỌA 2 CHIỀU TRONG MATLAB.................................................................50 5.1 Sử dụng lệnh Plot..........................................................................................50 i
- 5.2 Kiểu đường, dấu và màu...............................................................................52 5.3 Kiểu đồ thị......................................................................................................54 5.3.1 Đồ thị lưới, hộp chứa trục, nhãn và lời chú giải.....................................54 5.3.2 Kiến tạo hệ trục tọa độ............................................................................57 5.4 In hình..............................................................................................................60 5.5 Thao tác với đồ thị..........................................................................................61 5.6 Một số đặc điểm khác của đồ thị trong hệ tọa độ phẳng.......................64 6 ĐỒ HỌA 3 CHIỀU TRONG MATLAB.................................................................68 6.1 Đồ thị đường thẳng.......................................................................................68 6.2 Đồ thị bề mặt và lưới....................................................................................69 6.3 Thao tác với đồ thị..........................................................................................72 6.4 Các đặc điểm khác của đồ thị trong không gian 3D...................................74 6.5 Bảng màu.........................................................................................................76 6.6 Sử dụng bảng màu.........................................................................................78 6.7 Sử dụng màu để thêm thông tin....................................................................79 6.8 Hiển thị bảng màu.........................................................................................80 6.9 Thiết lập và thay đổi bảng màu....................................................................82 7 CÁC THƯ VIỆN TRỢ GIÚP VÀ XỬ LÝ TÍN HIỆU TRONG MATLAB........84 ii
- 1 GIỚI THIỆU CHUNG Tổng quan và các đặc điểm của Matlab 1.1 Chương trình MATLAB là một chương trình viết cho máy tính PC nhằm hỗ trợ cho các tính toán khoa học và kĩ thuật với các phần tử cơ bản là ma trận trên máy tính cá nhân do công ty "The MATHWORKS" viết ra. Thuật ngữ MATLAB có được là do hai từ MATRIX và LABORATORYghép lại. Chương trình này hiện đang được sử dụng nhiều trong nghiên cứu các vấn đề tính toán của các bài toán kĩ thuật như: Lý thuyết điều khiển tự động, kĩ thuật thống kê xác suất, xử lý số các tín hiệu, phân tích dữ liệu, dự báo chuỗi quan sát, v.v… MATLAB được điều khiển bởi các tập lệnh, tác động qua bàn phím. Nó cũng cho phép một khả năng lập trình với cú pháp thông dịch lệnh – còn gọi là Script file. Các lệnh hay bộ lệnh của MATLAB lên đến số hàng trăm và ngày càng được mở rộng bởi các phần TOOLS BOX( thư viện trợ giúp) hay thông qua các hàm ứng dụng được xây dựng từ người sử dụng. MATLAB có hơn 25 TOOLS BOX để trợ giúp cho việc khảo sát những vấn đề có liên quan trên. TOOL BOX SIMULINK là phần mở rộng của MATLAB, sử dụng để mô phỏng các hệ thống động học một cách nhanh chóng và tiện lợi. MATLAB 3.5 trở xuống hoạt động trong môi trường MS-DOS. MATLAB 4.0, 4.2, 5.1, 5.2, … hoạt động trong môi trường WINDOWS. Các version 4.0, 4.2 muốn hoạt động tốt phải sử dụng cùng với WINWORD 6.0. Hiện tại đã có version 5.31 (kham khảo từ Website của công ty). Chương trình Matlab có thể chạy liên kết với các chương trình ngôn ngữ cấp cao như C, C++, Fortran, … Việc cài đặt MATLAB thật dễ dàng và ta cần chú ý việc dùng thêm vào các thư viện trợ giúp hay muốn liên kết phần mềm này với một vài ngôn ngữ cấp cao. 1
- Giao diện và các cửa sổ chính của Matlab 1.2 Matlab sử dụng 2 cửa số giao diện: cửa số 1 để nhập các câu lệnh, dữ liệu và in kết quả Cửa số thứ 2: sử dụng cho việc truy xuất đồ họa, thể hiện những kết quả, lệnh dưới dạng đồ họa. 2
- 2 CÁC KHÁI NIỆM CƠ BẢN Hoạt động của Matlab trong cửa sổ lệnh 2.1 Cửa sổ lệnh là phần giao diện của Matlab được sử dụng để nhập các câu lệnh. Trong cửa số lệnh, Matlab có thể thực hiện được các phép toán từ đơn giản (giống như máy tính thông thường) đến rất phức tạp. Trong Matlab chúng ta có thể giải quyết một phép toán đơn giản như sau: >> 4 + 6 + 2 ans= 12 >> 4*25 + 6*52 + 2*99 ans= 610 Chú ý rằng trong Matlab không chú ý đến những khoảng trống và phép nhân được ưu tiên hơn phép cộng. Trong Matlab kết quả được gọi là ans (viết tắt của answer – phần về biến trong Matlab sẽ nói rõ hơn về vấn đề này). Tuy nhiên, ta cũng có thể lưu từng giá trị trên vào mỗi biến và do đó, ta có thể viết các câu lệnh trong cửa số lệnh như sau: >> erasers = 4 erasers= 4 >> pads = 6 pads= 6 >> tape = 2; >> iterms = erases + pads + tape iterms= 12 >> cost = erases*25 + pads*52 + tape*99 cost= 610 >> everage_cost = cost/iterms everage_cost= 50.8333 2.1.1 Những đặc điểm của cửa sổ lệnh 2.1.1.1 Quản lý không gian làm việc của Matlab Các dữ liệu và biến được tạo ra bên trong cửa sổ lệnh sẽ được lưu trữ trong không gian làm việc của Matlab. Khi muốn xem lại các biến đã sử dụng trong chương trình ta sẽ dùng lệnh who: >> who 3
- Your variables are: delta i y Để xem chi tiết hơn về các biến, ta dùng lệnh whos: >> whos Name Size Bytes Class delta 1x1 8 double array i 1x1 8 double array y 1x1 8 double array Grand total is 3 elements using 24 bytes Các biến có thể bị xóa khỏi không gian làm việc bằng lệnh clear, ví dụ >> clear i Chỉ xóa biến i >> clear Xóa tất cả các biến trong không gian làm việc. Lưu ý, khi thực hiện lệnh clear, Matlab sẽ không có câu hỏi yêu cầu xác nhận việc thực hiện lệnh, vì vậy, tất cả các biến sẽ bị xóa. Cần hết sức chú ý khi sử dụng lệnh clear. Một vài lệnh hệ thống Bỏ thuộc tính phân biệt chữ hoa, chữ thường Casesen off Sử dụng thuộc tính phân biệt chữ hoa chữ thường. Casesen on Xóa cửa sổ dòng lệnh Clc Xóa cửa sổ đồ họa Clf Lệnh in ra xâu ký tự cho biết loại máy tính Computer Lệnh cho phép xem các chương trình mẫu Demo Thoát khỏi Matlab Exit, quit Ctrl+C Dừng chương trình khi nó bị rơi vào trạng thái lặp không kết thúc Input Nhập dữ liệu từ bàn phím Pause Ngừng tạm thời chương trình Save Lưu giữ các biến vào file có tên matlab.mat Load Tải các biến đã được lưu từ 1 file vào vùng làm việc. 2.1.1.2 Khuôn dạng khi hiển thị Khi MATLAB hiển thị kết quả dạng số, nó tuân theo một số quy định sau: Mặc định, nếu kết quả là số nguyên thì MATLAB hiển thị nó là một số nguyên, khi kết quả là một số thực thì MATLAB hiển thị số xấp xỉ với bốn chữ số sau dấu phẩy, còn các số dạng khoa học thì MATLAB hiển thị cũng giống nhươ trong các máy tính khoa học. Bạn có thể không dùng dạng mặc định, mà tạo một khuôn dạng riêng từ mục Preferences, trong bảng chọn file, có thể mặc định hoặc đánh dạng xấp xỉ tại dấu nhắc. Chúng ta dùng biến average_cost ( trong ví dụ trơước) làm ví dụ, dạng số này là: Lệnh của MATLAB Average_cost Chú thích 5 số format short 50.833 16 số format long 50.83333333333334 5 số với số mũ format short e 5.0833e+01 16 số với số mũ format long e 5.083333333333334e+01 4
- chính xác hơn format short format short g 50.833 hoặc format short e chính xác hơn format long format long g 50.83333333333333 hoặc format long e hệ cơ số 16 format hex 40496aaaaaaaaaab hai số hệ 10 format bank 50.83 dơương, âm hoặc bằng format + + không dạng phân số format rat 305/ 6 Một chú ý quan trọng là MATLAB không thay đổi số khi định lại khuôn dạng hiển thị đơược chọn, mà chỉ thay đổi màn hình thay đổi. Các loại biến, hàm toán học cơ bản trong Matlab 2.2 2.2.1 Biến trong Matlab Tất cả các biến trong Matlab có thể dài tới 31 ký tự. Tên biến phải là một từ không chứa dấu cách, bao gồm các chữ cái, chữ số và dấu gạch dưới nhưng phải được bắt đầu bằng một chữ cái. Một vài biến đặc biệt trong Matlab: Các biến đặc biệt Giá trị Tên biến mặc định dùng để trả về kết quả ans pi = 3.1415.. Số nhỏ nhất, như vậy dùng cộng với 1 để được số nhỏ nhất lớn Eps hơn 1 Số của phép toán số thực flops Để chỉ số vô cùng inf NaN hoặc nan Dùng để chỉ số không xác định như kết quả của 0/0 i2 = j2 =-1 i (và) j Số các đối số đưa vào hàm được sử dụng nargin Số các đối số hàm đưa ra narout Số nhỏ nhất có thể được của số thực realmin Số lớn nhất có thể được của số thực realmax 2.2.2 Các hàm toán học thông thường Tính argument của số phức x abs(x) Hàm ngơược của cosine acos(x) Hàm ngơược của hyperbolic cosine acosh(x) Tính góc của số phức x angle(x) Hàm ngươợc của sine asin(x) Hàm ngơược của hyperbolic sine asinh(x) Hàm ngươợc của tangent atan(x) Là hàm arctangent của phần thực của x và y atan2(x, y) Hàm ngơược của hyperbolic tangent atanh(x) Xấp xỉ dươơng vô cùng ceil(x) 5
- Số phức liên hợp conj(x) Hàm cosine của x cos(x) Hàm hyperbolic cosine của x cosh(x) exp(x) Hàm ex Xấp xỉ không fix(x) Xấp xỉ âm vô cùng floor(x) Ước số chung lớn nhất của hai số nguyên x và gcd(x, y) y Hàm trả về phần ảo của số phức imag(x) Bội số chung nhỏ nhất của hai số nguyên x và y lcm(x, y) Logarithm tự nhiên log(x) Logarithm cơ số 10 log10(x) Hàm trả về phần thực của x real(x) Phần dươ của phép chia x/ y rem(x, y) Hàm làm tròn về số nguyên tố round(x) Hàm dấu: trả về dấu của argument nhươ: sign(x) sign(1.2)=1; sign(-23.4)=-1; sign(0)=0 Hàm tính sine của x sin(x) Hàm tính hyperbolic sine của x sinh(x) Hàm khai căn bậc hai sqrt(x) tan(x) Tangent tanh(x) Hyperbolic tangent % Một cách tính xấp xỉ giá trị của pi >> 4*atan(1) ans= 3.1416 % Yêu cầu giúp đỡ đối với hàm atan2 >> help atant2 ATAN2 four quadrant inverse tangent ATAN2(Y, X) is the four quadrant arctangent of the real parts of the elements of X and Y. -pi 180/pi*atan(-2/ 3) ans= -33.69 >> 180/pi*atan2(2, -3) ans= 146.31 >> 180/pi*atan2(-2, 3) ans= -33.69 >> 180/pi*atan2(2, 3) ans= 33.69 >> 180/pi*atan2(-2, -3) ans= 6
- -146.31 Một số ví dụ khác: % Tính cạnh huyền của tam giác pitago 3-4-5 >> y = sqrt(3^2 + 4^2) y= 5 % 23/4 có phần dư là 3 >> y = rem(23,4) y= 3 >> x = 2.6,y1 = fix(x),y2 = floor(x),y3 = ceil(x),y4 = round(x) x= 2.6000 y1= 2 y2= 2 y3= 3 y4= 3 % 9 là ơước số chung lớn nhất của 18 và 81 >> gcd(18,81) % 162 là bội số chung lớn nhất của 18 và 81 ans= 9 % 9 là ơước số chung lớn nhất của 18 và 81 >> lcm(18,81) % 162 là bội số chung lớn nhất của 18 và 81 ans= 162 Số phức 2.2.3 Một trong những đặc điểm mạnh mẽ nhất của MATLAB là làm việc với số phức. Số phức trong MATLAB đơược định nghĩa theo nhiều cách, ví dụ như sau: % Chèn thêm kí tự i vào phần ảo. % j ở đây tơương tự nhơư i ở trên. Một trong những đặc điểm mạnh mẽ nhất của MATLAB là >> c1 = 1 - 2i làm việc với số phức. Số phức trong MATLAB đơược định nghĩa theo nhiều cách, ví dụ như sau: % Chèn thêm kí tự i vào phần ảo. % j ở đây tơương tự nhơư i ở trên. c1= 1.0000 - 2.0000i >> c1 = 1 - 2j Một trong những đặc điểm mạnh mẽ nhất của MATLAB là làm việc với số phức. Số phức trong MATLAB đơược định nghĩa theo nhiều cách, ví dụ như sau: % Chèn thêm kí tự i vào phần ảo. % j ở đây tơương tự nhơư i ở trên.c1= 7
- 1.0000 - 2.0000i >> c2 = 3*(2-sqrt(-1)*3) c2= 6.0000 - 9.0000i >> c3 = sqrt(-2) c3= 0 + 1.4142i >> c4 = 6 + sin(.5)*i c4= 6.0000 + 0.4794i >> c5 = 6 + sin(.5)*j c5= 6.0000 + 0.4794i Trong hai ví dụ cuối, MATLAB mặc định giá trị của i = j = dùng cho phần ảo. Nhân với i hoặc j được yêu cầu trong trường hợp này, sin(.5)i và sin(.5)j không có ý nghĩa đối với MATLAB. Cuối cùng với các kí tự i và j, nhơư ở trong hai ví dụ đầu ở trên chỉ làm việc với số cố định, không làm việc đơược với biểu thức. Một số ngôn ngữ yêu cầu sự điều khiển đặc biệt cho số phức khi nó xuất hiện, trong MATLAB thì không cầu như vậy. Tất cả các phép tính toán học đều thao tác được nhươ đối với số thực thông thường: % Từ các dữ liệu ở trên % Bình phơương của i phải là -1>> c6 = (c1 + c2)/c3 Trong hai ví dụ cuối, MATLAB mặc định giá trị của i = j = dùng cho phần ảo. Nhân với i hoặc j được yêu cầu trong trươờng hợp này, sin(.5)i và sin(.5)j không có ý nghĩa đối với MATLAB. Cuối cùng với các kí tự i và j, nhơư ở trong hai ví dụ đầu ở trên chỉ làm việc với số cố định, không làm việc đơược với biểu thức. Một số ngôn ngữ yêu cầu sự điều khiển đặc biệt cho số phức khi nó xuất hiện, trong MATLAB thì không cầu nhươ vậy. Tất cả các phép tính toán học đều thao tác đơược nhươ đối với số thực thông thơường: % Từ các dữ liệu ở trên % Bình phơương của i phải là -1 c6= -7.7782 - 4.9497i Trong hai ví dụ cuối, MATLAB mặc định giá trị >> check_it_out = i^2 của i = j = dùng cho phần ảo. Nhân với i hoặc j được yêu cầu trong trươờng hợp này, sin(.5)i và sin(.5)j không có ý nghĩa đối với MATLAB. Cuối cùng với các kí tự i và j, nhơư ở trong hai ví dụ đầu ở trên chỉ làm việc với số cố định, không làm việc đơược với biểu thức. Một số ngôn ngữ yêu cầu sự điều khiển đặc biệt cho số phức khi nó xuất hiện, trong MATLAB thì không cầu nhươ vậy. Tất cả các phép tính toán học đều thao tác đơược nhươ đối với số thực thông thơường: % Từ các dữ liệu ở trên % Bình phơương của i phải là -1 8
- check_it_out= -1.0000 + 0.0000i trong ví dụ này chỉ còn lạ i phần thực, phần ảo bằng không. Chúng ta có thể dùng hàm real và imag để kiểm tra từng phần thực và ảo. Chúng ta có thể biểu diễn số phức dạng độ lớn và góc (dạng cực): M M.ej = a+bi ở trên số phức đơược biểu diễn bằng độ lớn M và góc , quan hệ g iữa các đại lượng này và phần thực, phần ảo của số phức biểu d iễn dơưới dạng đại số là: M= = tan- 1(b/ a) a = Mcos b = Msin Trong MATLAB, để chuyển từ dạng cực sang dạng đại số, dùng các hàm real, imag, và angle: % Gäi l¹ i c1 >> c1 c1= 1.0000 - 2.0000i % TÝnh argument cña sè phøc >> M_c1 = abs(c1) M_c1= 2.2361 % TÝnh gãc cña sè phøc theo radian >> angle_c1 = angle(c1) angle_c1= -1.1071 % ChuyÓn tõ radian sang ®é >> deg_c1 = angle_c1*180/ pi -63.4349 % TÝnh phÇn thùc >> real_c1 = real(c1) real_c1= 1 % TÝnh phÇn ¶o >> imag_c1 = imag(c1) imag_c1= -2 3 MA TRẬN VÀ CÁC PHÉP TOÁN MA TRẬN Trong phần này, ta sẽ xem xét các biến đơn, các đại lượng vô hướng, các biến ma trận cùng các phép tính cơ bản, các hàm chức năng sẵn có và các toán tử được sử dụng. 9
- Hầu hết các dữ liệu đều có dạng cấu trúc ma trận. Các phần tử của ma trận được sắp xếp theo hàng và cột. Một giá trị đơn có thể coi là một ma trận chỉ có duy nhất 1 hàng và 1 cột hay còn gọi là đại lượng vô hướng (scalar). Ma trận chỉ có 1 hàng hoặc 1 cột được gọi là vector. Để truy nhập đến từng phần tử của ma trận, ta sử dụng chỉ số hàng và cột của phần tử đó. Cách nhập giá trị cho ma trận hay các đại lượng vô hướng Có bốn cách nhập giá trị cho các đại lượng vô hướng hay 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 số liệu trực tiếp từ bàn phím Một số quy định cho việc định nghĩa ma trận: - Tên ma trận phải được bắt đầu bằng chữ cái và có thể chứ tới 19 ký tự là số, chữ cái hoặc dấu gạch dưới - Bên phải của dấu bằng là các giá trị của ma trận được viết theo thứ tự hàng trong dấu ngoặc vuông - Dấu chấm phẩy (;) phân cách các hàng. Các giá trị trong hàng được phân cách nhau bởi dấu phảy (,) hoặc dấu cách. Khi kết thúc nhập một ma trận phải có dấu (;). - Khi số phần tử trên một hàng của ma trận quá lớn, ta có thể dùng dấu ba chấm để thể hiện số phần tử của hàng vẫn còn. Lưu ý, dấu ba chấm cũng có thể được sử dụng để ngăn cách giữa toán tử và biến, ví dụ: >> average_cost = cost/ ... iterms average_cost= 50.83333 Tuy nhiên, không thể sử dụng dấu ba chấm để làm ngăn cách tên biến, ví dụ: >> average_cost = cost/ it... erms ??? age_cost = cost/iterms Missing operator, coma, or semicolon. Mảng đơn 3.1 Gi¶ sö ta xÐt hµm y=sin(x) trong mét nöa chu kú ( π ≥ x ≥ 0 ) t rong kho¶ng nµy sè ®iÓm gi¸ trÞ cña x lµ v« tËn, nhng ta chØ xÐt nh÷ng ®iÓm c¸ch nhau mét kho¶ng gi¸ trÞ lµ 0.1n nh vËy sè c¸c gi¸ trÞ cña x lµ ®Õ ® m îc. Tõ ®ã ta cã m¶ng c¸c gi¸ trÞ cña x lµ x= 0, 0.1π , 0.2π ,..., π NÕu ta dïng m¸y tÝnh kü thuËt ®Ó tÝnh th× ta ® t ¬ng øng îc c¸c gi¸ trÞ cña y, tõ ®ã ta cã m¶ng cña y 0.1π 0.2π 0.3π 0.4π 0.5π 0.6π 0.7π 0.8π 0.9π π x 0 y 0 0.31 0.59 0.81 0.95 1.0 0.95 0.81 0.59 0.31 0 trong m¶ng x chøa c¸c phÇn tö x1, x2, . . . , x11 trong m¶ng y chøa c¸c phÇn tö y1, y2, . . . , y11 10
- Trong MATLAB ®Ó to¹ nh÷ng m¶ng nµy rÊt ® gi¶n; vÝ dô ®Ó ¬n t ¹o hai m¶ng trªn ta ®¸nh c¸c lÖnh sau vµo dÊu nh¾c cña MATLAB: >> x=[0 .1*pi .2*pi .3*pi .4*pi .5*pi .6*pi .7*pi .8*pi .9*pi p i] x= Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416 >> y = sin(x) y= Columns 1 through 7 0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 Columns 8 through 11 0.8090 0.5878 0.3090 0.0000 KÕt qu¶ trªn ta ® m¶ng cña y gåm c¸c phÇn tö t ¬ng øng lµ îc s ine cña c¸c phÇn tö cña x, ë ® y MATLAB ngÇm hiÓu lµ ta tÝnh © s ine cña tõng phÇn tö cña x. §Ó t¹o m¶ng, ta ® c¸c phÇn tö cña m¶ng vµo gi÷a hai Æt dÊu ngoÆc vu«ng "[. . . ] " ; gi÷a hai phÇn tö cña m¶ng cã thÓ lµ dÊu c¸ch hoÆc dÊu phÈy "," Địa chỉ của mảng 3.2 ë t rªn m¶ng x cã 1 hµng, 11 cét hay cã thÓ gäi lµ vector hµng, m¶ng cã ®é dµi 11 +) §Ó truy nhËp ®Õn c¸c phÇn tö cña m¶ng ta dïng c¸c chØ sè thø tù cña phÇn tö ®ã trong m¶ng vÝ dô x(1) lµ phÇn tö thø nhÊt cña m¶ng, x(2) lµ phÇn tö thø hai cña m¶ng... >> x(2) % phÇn tö thø nhÊt cña m¶ng ans= 0.3142 >> y(5) % phÇn tö thø 5 cña m¶ng ans= 0.9511 +) §Ó truy nhËp ®Õn nhiÒu phÇn tö cña m¶ng, vÝ dô ta truy nhËp tõ phÇn tö thø nhÊt ®Õn phÇn tö thø n¨m cña m¶ng x: >> x(1:5) ans= 0 0.3142 0.6283 0.9425 1.2566 Truy nhËp tõ phÇn tö thø 7 ®Õn phÇn tö cuèi cña m¶ng y: 11
- >> y(7:end) ans= 0.9511 0.8090 0.5878 0.3090 0.0000 Truy nhËp tõ phÇn tö thø ba ®Õn phÇn tö thø nhÊt cña m¶ng y: >> y(3:-1:1) ans= 0.5878 0.3090 0 ë vÝ dô trªn 3 lµ phÇn tö thø 3, 1 lµ chØ phÇn tö ®Çu tiªn, cßn - 1 lµ gi¸ trÞ céng (vÞ trÝ phÇn tö sau b»ng vÞ trÝ phÇn tö tr íc céng víi - 1) Truy nhËp ®Õn c¸c phÇn tö trong kho¶ng tõ phÇn tö thø 2, ®Õn phÇn tö thø 7, vÞ trÝ cña phÇn tö sau b»ng vÞ trÝ cña phÇn tö t r íc céng víi 2, cña m¶ng x: >> x(2:2:7) ans= 0.3142 0.9425 1.5708 T¹o m¶ng gåm c¸c phÇn tö thø 1, 2, 8, 9 cña m¶ng y: >> y([8 2 9 1]) ans= 0.8090 0.3090 0.5878 0 NÕu ta truy nhËp vµo c¸c phÇn tö cña m¶ng mµ thø tù c¸c phÇn tö t¨ng ®Òu ví i 1, ta cã thÓ ®¸nh lÖnh: >> x(1:3) ans= 0 0.3142 0.6283 Cấu trúc của mảng 3.3 Víi m¶ng cã sè l îng phÇn tö Ýt th× ta cã thÓ nhËp vµo t rùc tiÕp, nhng ví i m¶ng cã sè l îng l ín c¸c phÇn tö th× ta d ïng mét trong hai c¸ch sau: +) T¹o mét m¶ng b¾t ®Çu lµ phÇn tö 0, sau b»ng phÇn tö tr íc céng víi 0.1, phÇn tö cuèi lµ 1, tÊt c¶ c¸c phÇn tö cña m¶ng ® nh©n víi π : îc >> x= (0:0.1:1)*pi x= Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416 12
- +) T¹o m¶ng gåm c¸c phÇn tö cña x b»ng hµm linspace. Có ph¸p cña hµm nµy nh sau: l i nspace(gi¸ trÞ phÇn tö ®Çu, gi¸ trÞ phÇn tö cuèi, sè c¸c phÇn tö) vÝ dô >> x = linspace(0,pi,11) x= Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416 C¸ch thø nhÊt gióp ta t¹o m¶ng mµ chØ cÇn vµo kho¶ng c¸ch gi¸ trÞ gi÷a c¸c phÇn tö (kh«ng cÇn biÕt sè phÇn tö), cßn c¸ch thø hai ta chØ cÇn vµo sè phÇn tö cña m¶ng (kh«ng cÇn b iÕt kho¶ng c¸ch gi¸ trÞ gi÷a c¸c phÇn tö). Ngoµi c¸c m¶ng trªn, MATLAB cßn cung cÊp m¶ng kh«ng gian theo logarithm b»ng hµm logspace. Có ph¸p cña hµm logspace nh sau: l ogspace(sè mò ®Çu, sè mò cuèi, sè phÇn tö) vÝ dô: >> logspace(0,2,11) ans= Columns 1 through 7 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 Columns 8 though 11 25.1189 39.8107 63.0957 100.0000 T¹o m¶ng, gi¸ trÞ b¾t ®Çu t¹ i 100, gi¸ trÞ cuèi lµ 102, chøa 11 g i¸ trÞ C¸c m¶ng trªn lµ c¸c m¶ng mµ c¸c phÇn tö cña nã ® t¹o îc l ªn theo mét quy luËt nhÊt ®Þnh. Nh ng ®«i khi m¶ng ® yªu îc cÇu, nã kh«ng thuËn tiÖn t¹o c¸c phÇn tö b»ng c¸c ph¬ng ph¸p t rªn, kh«ng cã mét mÉu chuÈn nµo ®Ó t¹o c¸c m¶ng nµy. Tuy nhiªn ta cã thÓ t¹o m¶ng b»ng c¸ch vµo nhiÒu phÇn tö cïng mét l óc VÝ dô >> a = 1:5,b = 1:2:9 a= 1 2 3 4 5 b= 1 3 5 7 9 13
- >> c = [a b] 1 2 3 4 5 1 3 5 7 9 ë vÝ dô trªn ta ®· t¹o hai m¶ng thµnh phÇn lµ a vµ b sau ®ã t ¹o m¶ng c b»ng c¸ch ghÐp hai m¶ng a vµ b. Ta còng cã thÓ t¹o m¶ng nh sau: >> d=[a(1:2:5) 1 0 1] d= 1 3 5 1 0 1 a lµ m¶ng gåm c¸c phÇn tö [1 3 5], m¶ng d lµ m¶ng gåm c¸c phÇn tö cña a vµ ghÐp thªm c¸c phÇn tö [1 0 1] Tãm l¹ i ta cã b¶ng cÊu tróc c¸c m¶ng c¬ b¶n: x=[ 2 2*pi sqrt(2) T¹o vector hµng x chøa c¸c phÇn tö 2-3j ] ® biÖt. Æc x= f i rst : last T¹o vector hµng x b¾t ®Çu t¹ i f i rst , phÇn tö sau b»ng phÇn tö tr íc céng v íi 1, kÕt thóc lµ phÇn tö cã gi¸ trÞ b»ng hoÆc nhá h¬n last . x= f i rst : increment T¹o vector hµng x b¾t ®Çu t¹ i f ist , : l ast gi¸ trÞ céng lµ increment, kÕt thóc l µ phÇn tö cã gi¸ trÞ b»ng hoÆc nhá h¬n last . x= l inspace(f ist , T¹o vector hµng x b¾t ®Çu t¹ i f i rst , l ast , n) kÕt thóc lµ last , cã n phÇn tö. x= logspace(f i rst , T¹o vector hµng kh«ng gian logarithm l ast , n) x b¾t ®Çu t¹ i 10first, kÕt thóc t¹ i 10last, cã n phÇn tö. Vector hàng và vector cột 3.4 Trong c¸c vÝ dô tr íc, m¶ng chøa mét hµng vµ nhiÒu cét, ngêi ta th êng gäi lµ vector hµng. Ngoµi ra ta cßn cã m¶ng lµ vector cét, tøc lµ m¶ng cã mét cét vµ nhiÒu hµng, trong tr êng h îp nµy tÊt c¶ mäi thao t¸c vµ tÝnh to¸n ®èi ví i m¶ng nh ë t rªn lµ kh«ng thay ® æi. Tõ c¸c hµm t¹o m¶ng minh ho¹ ë phÇn tr íc (tÊt c¶ ®Òu t¹o vector hµng), cã nhiÒu c¸ch ®Ó t¹o vector cét. Mét c¸ch trùc t iÕp ®Ó t¹o vector cét lµ vµo tõng phÇn tö cña m¶ng nh vÝ dô sau: >> c = [1;2;3;4;5] c= 1 2 3 4 5 14
- Kh¸c ví i tr íc lµ ta dïng dÊu c¸ch hay dÊu phÈy ®Ó ph©n c¸ch gi÷a hai cét cña vector hµng. Cßn ë vÝ dô nµy ta dïng dÊu chÊm phÈy ®Óph©n c¸ch gi÷a hai hµng cña vector cét. Mét c¸ch kh¸c ®Ó t¹o c¸c vector cét lµ dïng c¸c hµm linspace, logspace, hay tõ c¸c vector hµng, sau ®ã dïng ph¬ng ph¸p chuyÓn vÞ. MATLAB dïng to¸n tö chuyÓn vÞ lµ ( ' ) ®Ó chuyÓn tõ vector hµng thµnh vector cét vµ ngîc l¹ i . VÝ dô t¹o mét vector a vµ vector b l µ chuyÓn vÞ cña vector a, vector c l µ chuyÓn vÞ cña vector b: >> a= 1:5 a= 1 2 3 4 5 >> b= a' b= 1 2 3 4 5 >> c= b' c= 1 2 3 4 5 Ngoµi ra MATLAB cßn sö dông to¸n tö chuyÓn ví i dÊu chÊm ®»ng tr íc ( . ' ) ( to¸n tö chuyÓn vÞ chÊm). To¸n tö nµy chØ kh¸c víi to¸n tö chuyÓn vÞ ( ' ) khi c¸c phÇn tö cña m¶ng lµ sè phøc, tøc lµ tõ mét vector nguån ví i c¸c phÇn tö lµ sè phøc, to¸n tö ( ' ) t¹o ra vector phøc l i ªn hîp chuyÓn vÞ, cßn to¸n tö ( . ' ) chØ t¹o ra vector chuyÓn vÞ. VÝ dô sau ® ysÏ lµm râ ®iÒu trªn: © >> c = a.' % T¹o vector c tõ vector a ë t rªn b»ng to¸n tö chuyÓn vÞ chÊm c= 1 2 3 4 5 % T¹o vector sè phøc d tõ vector a >> d = a + i*a d= Columns 1 though 4 1.0000+1.0000i 2.0000+2.0000i 3.0000+3.0000i 4.0000+4.0000i Columns 5 5.0000+5.0000i % T¹o vector e tõ vector d b»ng to¸n tö >> e = d.' chuyÓn vÞ chÊm ( . ' ) e= 15
- 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.0000 + 4.0000i 5.0000 + 5.0000i % T¹o ra vector f tõ vector d b»ng to¸n >> f = d' tö chuyÓn vÞ ( ' ) f= 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.0000i ë t rªn ta chØ xÐt ®Õn m¶ng cã mét hµng hay mét cét b©y giê ta xÐt tr êng hîp cã nhiÒu hµng vµ nhiÒu cét, nã cßn ®îc gäi lµ ma trËn. VÝ dô sau ® y lµ ma trËn g cã hai hµng vµ © bèn cét: >> g = [1 2 3 4;5 6 7 8] g= 1 2 3 4 5 6 7 8 Trong vÝ dô nµy ta dïng dÊu c¸ch ®Ó vµo c¸c phÇn tö trong hµng vµ dÊu chÊm phÈy ( ; ) ®Ó t¹o hai hµng; ngoµi ra ta còng cã thÓ t¹o ma trËn nh sau: >> g = [1 2 3 4 5678 9 10 11 12] g= 1 2 3 4 5 6 7 8 9 10 11 12 Chó ý: Khi nhËp vµo ma trËn th× gi÷a c¸c hµng sè phÇn tö ph¶i b»ng nhau nÕu kh«ng ch¬ng tr×nh sÏ bÞ b¸o lçi nh vÝ dô sau: >> h = [1 2 3;4 5 6 7] Numbers of elements in each row must be the same Các phép toán đối với mảng 3.5 3.5.1 Phép toán giữa mảng với số đơn Trong vÝ dô tr íc chóng ta ®· t¹o m¶ng x b»ng c¸ch nh©n c¸c phÇn tö cña mét m¶ng víi . C¸c phÐp to¸n ® gi¶n kh¸c gi÷a ¬n 16
- m¶ng víi sè ®¬n lµ phÐp céng, phÐp trõ, phÐp nh©n, vµ phÐp chia cña m¶ng cho sè ®ã b»ng c¸ch thùc hiÖn phÐp to¸n ®èi víi tõng phÇn tö cña m¶ng. VÝ dô: >> g = [1 2 3 4; 5 6 7 8; 9 10 11 12]; >> -2 % Trõ c¸c phÇn tö cña m¶ng g ®i 2 ans= -1 0 1 2 3 4 5 6 7 8 9 10 >> 2*g - 1 % Nh©n tÊt c¶ c¸c phÇn tö cña m¶ng g víi 2 sau ®ã trõ ®i 1 ans= 1 3 5 7 9 11 13 15 17 19 21 23 3.5.2 Phép toán giữa mảng với mảng ThuËt to¸n thùc hiÖn phÐp to¸n gi÷a c¸c m¶ng kh«ng ph¶i ®¬n gi¶n nh trªn mµ nã cßn bÞ rµng buéc bëi c¸c ®iÒu kiÖn kh¸c nh ®èi víi hai m¶ng kÝch cì nh nhau th× ta cã c¸c phÐp to¸n sau: phÐp céng, phÐp trõ, phÐp nh©n, chia t¬ng øng gi÷a c¸c phÇn tö cña cña hai m¶ng. VÝ dô : >> g % Gäi l¹i m¶ng g g= 1 2 3 4 5 6 7 8 9 10 11 12 >> h = [1 1 1 1; 2 2 2 2; 3 3 3 3] % T¹o mét m¶ng míi h. h= 1 1 1 1 2 2 2 2 3 3 3 3 >> h + g % Céng hai ma trËn g vµ h ( céng t¬ng øng tõng phÇn tö cña h víi g) ans= 2 3 4 5 7 8 9 10 12 13 14 15 >> ans h % LÊy kÕt qu¶ tríc trõ ®i m¶ng h, ta ®îc l¹i m¶ng g. ans= 1 2 3 4 5 6 7 8 9 10 11 12 17
- >> 2*g h % Nh©n ma trËn g víi 2 sau ®ã lÊy kÕt qu¶ trõ ®i ma trËn h. ans= 1 3 5 7 8 10 12 14 15 17 19 21 >> g.*h % Nh©n t¬ng øng c¸c phÇn tö cña m¶ng g víi c¸c phÇn tö cña m¶ng h ans= 1 2 3 4 10 12 14 16 27 30 33 36 ë vÝ dô trªn ta ®∙ dïng to¸n tö chÊm_nh©n ( .* ), ngoµi ra MATLAB cßn dïng to¸n tö chÊm_chia ( ./ hoÆc .\ ) ®Ó chia t ¬ng øng c¸c phÇn tö cña hai m¶ng nh vÝ dô díi ®©y: >> g./h % Chia ph¶i t¬ng øng c¸c phÇn tö cña m¶ng g víi c¸c phÇn tö cña m¶ng h ans= 1.0000 2.0000 3.0000 4.0000 2.5000 3.0000 3.5000 4.0000 3.0000 3.3333 3.6667 4.0000 >> h.\g % Chia tr¸i t¬ng øng c¸c phÇn tö cña m¶ng g víi c¸c phÇn tö cña m¶ng h ans= 1.0000 2.0000 3.0000 4.0000 2.5000 3.0000 3.5000 4.0000 3.0000 3.3333 3.6667 4.0000 Chó ý ta chØ cã thÓ dïng phÐp nh©n_chÊm hay phÐp chia_chÊm ®èi víi c¸c m¶ng g vµ h mµ kh«ng thÓ dïng phÐp nh©n ( * ) hay phÐp chia ( / hoÆc \ ) v× ®èi víi c¸c phÐp to¸n nµy yªu cÇu sè cét vµ sè hµng cña hai ma trËn ph¶i t¬ng thÝch. vÝ dô: >> g*h ??? Error using ==> * Inner matrix dimensions must agree. >> g/h Warning: Rank deficient, rank = 1 tol = 503291e-15. ans= 0 0 0.8333 0 0 2.1667 0 0 3.5000 >> h/g Warning: Rank dificient, rank = 2 tol = 1.8757e-14. ans= - 0.1250 0 0.1250 18
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Kỹ thuật máy tính: MATLAB toàn tập
201 p | 316 | 145
-
Tài liệu matlap toàn tập_1
25 p | 231 | 123
-
MATLAB 7.0
7 p | 349 | 101
-
Tự học ngôn ngữ lập trình MATLAP
138 p | 240 | 92
-
Tài liệu matlap toàn tập_2
25 p | 142 | 74
-
Tài liệu matlap toàn tập_3
25 p | 155 | 65
-
Tài liệu matlap toàn tập_4
25 p | 118 | 55
-
Tài liệu matlap toàn tập_8
25 p | 105 | 53
-
Tài liệu matlap toàn tập_6
25 p | 86 | 52
-
Tài liệu matlap toàn tập_5
25 p | 113 | 51
-
Tài liệu matlap toàn tập_7
25 p | 116 | 50
-
Tài liệu matlap toàn tập_9
1 p | 133 | 45
-
Ngôn ngữ lập trình Matlap
0 p | 137 | 41
-
Matlab for win toàn tập
0 p | 86 | 29
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn