GIỚI THIỆU CHUNG 1.1 Tổng quan đặc điểm Matlab 1.2 Giao diện cửa sổ Matlab 2 CÁC KHÁI NIỆM CƠ BẢN 2.1 Hoạt động Matlab cửa sổ lệnh 2.1.1 Những đặc điểm cửa sổ lệnh 2.2 Các loại biến, hàm toán học Matlab 2.2.1 Biến Matlab 2.2.2 Các hàm tốn học thơng thường .5 2.2.3 Số phức MA TRẬN VÀ CÁC PHÉP TOÁN MA TRẬN .9 3.1 Mảng đơn 10 3.2 Địa mảng 11 3.3 Cấu trúc mảng 12 3.4 Vector hàng vector cột 14 3.5 Các phép toán mảng 16 3.5.1 Phép toán mảng với số đơn 16 3.5.2 Phép toán 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ử 20 3.7 Thao tác mảng 20 3.8 Tìm kiếm mảng 25 3.9 So sánh mảng 26 3.10 Kích cỡ mảng 29 3.11 Mảng nhiều chiều .31 3.12 Các ma trận đặc biệt 33 LẬP TRÌNH TRONG MATLAB 35 4.1 Script M_file 35 4.2 Các phép tính logic 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ệ 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 ĐỒ HỌA CHIỀU TRONG MATLAB .50 5.1 Sử dụng lệnh Plot 50 i 5.2 Kiểu đường, dấu màu .52 5.3 Kiểu đồ thị 54 5.3.1 Đồ thị lưới, hộp chứa trục, nhãn lời 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 đồ thị hệ tọa độ phẳng .64 ĐỒ HỌA CHIỀU TRONG MATLAB .68 6.1 Đồ thị đường thẳng .68 6.2 Đồ thị bề mặt lưới 69 6.3 Thao tác với đồ thị 72 6.4 Các đặc điểm khác đồ thị 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 thay đổi bảng màu 82 CÁC THƯ VIỆN TRỢ GIÚP VÀ XỬ LÝ TÍN HIỆU TRONG MATLAB 84 ii GIỚI THIỆU CHUNG 1.1 Tổng quan đặc điểm Matlab Chương trình MATLAB chương trình viết cho máy tính PC nhằm hỗ trợ cho tính toán khoa học kĩ thuật với phần tử ma trận máy tính cá nhân công ty "The MATHWORKS" viết Thuật ngữ MATLAB có hai từ MATRIX LABORATORYghép lại Chương trình sử dụng nhiều nghiên cứu vấn đề tính tốn 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ố tín hiệu, phân tích liệu, dự báo chuỗi quan sát, v.v… MATLAB điều khiển tập lệnh, tác động qua bàn phím Nó cho phép khả lập trình với cú pháp thơng dịch lệnh – gọi Script file Các lệnh hay lệnh MATLAB lên đến số hàng trăm ngày mở rộng phần TOOLS BOX( thư viện trợ giúp) hay thông qua hàm ứng dụng xây dựng từ người sử dụng MATLAB có 25 TOOLS BOX để trợ giúp cho việc khảo sát vấn đề có liên quan TOOL BOX SIMULINK phần mở rộng MATLAB, sử dụng để mô hệ thống động học cách nhanh chóng tiện lợi MATLAB 3.5 trở xuống hoạt động môi trường MS-DOS MATLAB 4.0, 4.2, 5.1, 5.2, … hoạt động môi trường WINDOWS Các version 4.0, 4.2 muốn hoạt động tốt phải sử dụng với WINWORD 6.0 Hiện có version 5.31 (kham khảo từ Website cơng ty) Chương trình Matlab chạy liên kết với chương trình ngơn ngữ cấp cao C, C++, Fortran, …
1 GIỚI THIỆU CHUNG 1.1 Tổng quan đặc điểm Matlab 1.2 Giao diện cửa sổ Matlab 2 CÁC KHÁI NIỆM CƠ BẢN 2.1 Hoạt động Matlab cửa sổ lệnh 2.1.1 Những đặc điểm cửa sổ lệnh 2.2 Các loại biến, hàm toán học Matlab 2.2.1 Biến Matlab 2.2.2 Các hàm tốn học thơng thường .5 2.2.3 Số phức MA TRẬN VÀ CÁC PHÉP TOÁN MA TRẬN .9 3.1 Mảng đơn 10 3.2 Địa mảng 11 3.3 Cấu trúc mảng 12 3.4 Vector hàng vector cột 14 3.5 Các phép toán mảng 16 3.5.1 Phép toán mảng với số đơn 16 3.5.2 Phép toán 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ử 20 3.7 Thao tác mảng 20 3.8 Tìm kiếm mảng 25 3.9 So sánh mảng 26 3.10 Kích cỡ mảng 29 3.11 Mảng nhiều chiều .31 3.12 Các ma trận đặc biệt 33 LẬP TRÌNH TRONG MATLAB 35 4.1 Script M_file 35 4.2 Các phép tính logic 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ệ 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 ĐỒ HỌA CHIỀU TRONG MATLAB .50 5.1 Sử dụng lệnh Plot 50 i 5.2 Kiểu đường, dấu màu .52 5.3 Kiểu đồ thị 54 5.3.1 Đồ thị lưới, hộp chứa trục, nhãn lời 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 đồ thị hệ tọa độ phẳng .64 ĐỒ HỌA CHIỀU TRONG MATLAB .68 6.1 Đồ thị đường thẳng .68 6.2 Đồ thị bề mặt lưới 69 6.3 Thao tác với đồ thị 72 6.4 Các đặc điểm khác đồ thị 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 thay đổi bảng màu 82 CÁC THƯ VIỆN TRỢ GIÚP VÀ XỬ LÝ TÍN HIỆU TRONG MATLAB 84 ii GIỚI THIỆU CHUNG 1.1 Tổng quan đặc điểm Matlab Chương trình MATLAB chương trình viết cho máy tính PC nhằm hỗ trợ cho tính toán khoa học kĩ thuật với phần tử ma trận máy tính cá nhân công ty "The MATHWORKS" viết Thuật ngữ MATLAB có hai từ MATRIX LABORATORYghép lại Chương trình sử dụng nhiều nghiên cứu vấn đề tính tốn 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ố tín hiệu, phân tích liệu, dự báo chuỗi quan sát, v.v… MATLAB điều khiển tập lệnh, tác động qua bàn phím Nó cho phép khả lập trình với cú pháp thơng dịch lệnh – gọi Script file Các lệnh hay lệnh MATLAB lên đến số hàng trăm ngày mở rộng phần TOOLS BOX( thư viện trợ giúp) hay thông qua hàm ứng dụng xây dựng từ người sử dụng MATLAB có 25 TOOLS BOX để trợ giúp cho việc khảo sát vấn đề có liên quan TOOL BOX SIMULINK phần mở rộng MATLAB, sử dụng để mô hệ thống động học cách nhanh chóng tiện lợi MATLAB 3.5 trở xuống hoạt động môi trường MS-DOS MATLAB 4.0, 4.2, 5.1, 5.2, … hoạt động môi trường WINDOWS Các version 4.0, 4.2 muốn hoạt động tốt phải sử dụng với WINWORD 6.0 Hiện có version 5.31 (kham khảo từ Website cơng ty) Chương trình Matlab chạy liên kết với chương trình ngơn ngữ cấp cao C, C++, Fortran, … Việc cài đặt MATLAB thật dễ dàng ta cần ý việc dùng thêm vào thư viện trợ giúp hay muốn liên kết phần mềm với vài ngôn ngữ cấp cao 1.2 Giao diện cửa sổ Matlab Matlab sử dụng cửa số giao diện: cửa số để nhập câu lệnh, liệu in kết Cửa số thứ 2: sử dụng cho việc truy xuất đồ họa, thể kết quả, lệnh dạng đồ họa 2 CÁC KHÁI NIỆM CƠ BẢN 2.1 Hoạt động Matlab cửa sổ lệnh Cửa sổ lệnh phần giao diện Matlab sử dụng để nhập câu lệnh Trong cửa số lệnh, Matlab thực phép tốn từ đơn giản (giống máy tính thơng thường) đến phức tạp Trong Matlab giải phép toán đơn giản sau: >> + + ans= 12 >> 4*25 + 6*52 + 2*99 ans= 610 Chú ý Matlab không ý đến khoảng trống phép nhân ưu tiên phép cộng Trong Matlab kết gọi ans (viết tắt answer – phần biến Matlab nói rõ vấn đề này) Tuy nhiên, ta lưu giá trị vào biến đó, ta viết câu lệnh cửa số lệnh sau: >> erasers = erasers= >> pads = pads= >> 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 sổ lệnh 2.1.1.1 Quản lý không gian làm việc Matlab Các liệu biến tạo bên cửa sổ lệnh lưu trữ không gian làm việc Matlab Khi muốn xem lại biến sử dụng chương trình ta dùng lệnh who: >> who Your variables are: delta i y Để xem chi tiết biến, ta dùng lệnh whos: >> whos Name Size delta i y 1x1 1x1 1x1 Bytes 8 Class double array double array double array Grand total is elements using 24 bytes Các biến bị xóa khỏi khơng gian làm việc lệnh clear, ví dụ >> clear i Chỉ xóa biến i >> clear Xóa tất biến không gian làm việc Lưu ý, thực lệnh clear, Matlab khơng có câu hỏi u cầu xác nhận việc thực lệnh, vậy, tất biến bị xóa Cần ý sử dụng lệnh clear Một vài lệnh hệ thống Casesen off Bỏ thuộc tính phân biệt chữ hoa, chữ thường Casesen on Sử dụng thuộc tính phân biệt chữ hoa chữ thường Clc Xóa cửa sổ dịng lệnh Clf Xóa cửa sổ đồ họa Computer Lệnh in xâu ký tự cho biết loại máy tính Demo Lệnh cho phép xem chương trình mẫu Exit, quit Thốt khỏi Matlab Ctrl+C Dừng chương trình bị rơi vào trạng thái lặp không kết thúc Input Nhập liệu từ bàn phím Pause Ngừng tạm thời chương trình Save Lưu giữ biến vào file có tên matlab.mat Load Tải biến lưu từ file vào vùng làm việc 2.1.1.2 Khuôn dạng hiển thị Khi MATLAB hiển thị kết dạng số, tuân theo số quy định sau: Mặc định, kết số ngun MATLAB hiển thị số nguyên, kết số thực MATLAB hiển thị số xấp xỉ với bốn chữ số sau dấu phẩy, số dạng khoa học MATLAB hiển thị giống nhươ máy tính khoa học Bạn khơng dùng dạng mặc định, mà tạo khuôn dạng riêng từ mục Preferences, bảng chọn file, mặc định đánh dạng xấp xỉ dấu nhắc Chúng ta dùng biến average_cost ( ví dụ trơước) làm ví dụ, dạng số là: Lệnh MATLAB format short format long format short e format long e Average_cost 50.833 50.83333333333334 5.0833e+01 5.083333333333334e+01 Chú thích số 16 số số với số mũ 16 số với số mũ format short g 50.833 format long g 50.83333333333333 format hex format bank format + 40496aaaaaaaaaab 50.83 + format rat 305/ xác format short format short e xác format long format long e hệ số 16 hai số hệ 10 dơương, âm không dạng phân số Một ý quan trọng MATLAB không thay đổi số định lại khuôn dạng hiển thị đơược chọn, mà thay đổi hình thay đổi 2.2 Các loại biến, hàm toán học Matlab 2.2.1 Biến Matlab Tất biến Matlab dài tới 31 ký tự Tên biến phải từ không chứa dấu cách, bao gồm chữ cái, chữ số dấu gạch phải bắt đầu chữ Một vài biến đặc biệt Matlab: Các biến đặc biệt Giá trị ans Tên biến mặc định dùng để trả kết pi = 3.1415 Eps Số nhỏ nhất, dùng cộng với để số nhỏ lớn flops Số phép toán số thực inf Để số vô NaN nan Dùng để số không xác định kết 0/0 i (và) j i2 = j2 =-1 nargin Số đối số đưa vào hàm sử dụng narout Số đối số hàm đưa realmin Số nhỏ số thực realmax Số lớn số thực 2.2.2 Các hàm tốn học thơng thường abs(x) Tính argument số phức x acos(x) Hàm ngơược cosine acosh(x) Hàm ngơược hyperbolic cosine angle(x) Tính góc số phức x asin(x) Hàm ngươợc sine asinh(x) Hàm ngơược hyperbolic sine atan(x) Hàm ngươợc tangent atan2(x, y) Là hàm arctangent phần thực x y atanh(x) Hàm ngơược hyperbolic tangent ceil(x) Xấp xỉ dươơng vô conj(x) cos(x) cosh(x) exp(x) fix(x) floor(x) gcd(x, y) imag(x) lcm(x, y) log(x) log10(x) real(x) rem(x, y) round(x) sign(x) sin(x) sinh(x) sqrt(x) tan(x) tanh(x) >> 4*atan(1) ans= 3.1416 >> help atant2 Số phức liên hợp Hàm cosine x Hàm hyperbolic cosine x Hàm ex Xấp xỉ không Xấp xỉ âm vô Ước số chung lớn hai số nguyên x y Hàm trả phần ảo số phức Bội số chung nhỏ hai số nguyên x y Logarithm tự nhiên Logarithm số 10 Hàm trả phần thực x Phần dươ phép chia x/ y Hàm làm tròn số nguyên tố Hàm dấu: trả dấu argument nhươ: sign(1.2)=1; sign(-23.4)=-1; sign(0)=0 Hàm tính sine x Hàm tính hyperbolic sine x Hàm khai bậc hai Tangent Hyperbolic tangent % Một cách tính xấp xỉ giá trị pi % Yêu cầu giúp đỡ hàm atan2 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= -146.31 Một số ví dụ khác: >> y = sqrt(3^2 + 4^2) % Tính cạnh huyền tam giác pitago 3-4-5 y= >> y = rem(23,4) % 23/4 có phần dư y= >> x = 2.6,y1 = fix(x),y2 = floor(x),y3 = ceil(x),y4 round(x) x= 2.6000 y1= y2= y3= y4= >> gcd(18,81) % ơước số chung lớn 18 81 = % 162 bội số chung lớn 18 81 ans= >> lcm(18,81) % ơước số chung lớn 18 81 % 162 bội số chung lớn 18 81 ans= 162 2.2.3 Số phức Một đặc điểm mạnh mẽ MATLAB làm việc với số phức Số phức MATLAB đơược định nghĩa theo nhiều cách, ví dụ sau: % Chèn thêm kí tự i vào phần ảo % j tơương tự nhơư i >> c1 = - 2i Một đặc điểm mạnh mẽ MATLAB làm việc với số phức Số phức MATLAB đơược định nghĩa theo nhiều cách, ví dụ sau: % Chèn thêm kí tự i vào phần ảo % j tơương tự nhơư i c1= 1.0000 - 2.0000i >> c1 = - 2j Một đặc điểm mạnh mẽ MATLAB làm việc với số phức Số phức MATLAB đơược định nghĩa theo nhiều cách, ví dụ sau: % Chèn thêm kí tự i vào phần ảo % j tơương tự nhơư i trên.c1= 1.0000 - 2.0000i >> c2 = 3*(2-sqrt(-1)*3) c2= 6.0000 - 9.0000i >> c3 = sqrt(-2) c3= + 1.4142i >> c4 = + sin(.5)*i c4= 6.0000 + 0.4794i >> c5 = + sin(.5)*j c5= 6.0000 + 0.4794i Trong hai ví dụ cuối, MATLAB mặc định giá trị i = j = dùng cho phần ảo Nhân với i j yêu cầu trường hợp này, sin(.5)i sin(.5)j khơng có ý nghĩa MATLAB Cuối với kí tự i j, nhơư hai ví dụ đầu 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 điều khiển đặc biệt cho số phức xuất hiện, MATLAB khơng cầu Tất phép tính tốn học thao tác nhươ số thực thông thường: % Từ liệu % Bình phơương i phải -1>> c6 = (c1 + c2)/c3 Trong hai ví dụ cuối, MATLAB mặc định giá trị i = j = dùng cho phần ảo Nhân với i j yêu cầu trươờng hợp này, sin(.5)i sin(.5)j khơng có ý nghĩa MATLAB Cuối với kí tự i j, nhơư hai ví dụ đầu 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 điều khiển đặc biệt cho số phức xuất hiện, MATLAB khơng cầu nhươ Tất phép tính tốn học thao tác đơược nhươ số thực thông thơường: % Từ liệu % Bình phơương i phải -1 c6= -7.7782 - 4.9497i >> check_it_out = i^2 Trong hai ví dụ cuối, MATLAB mặc định giá trị i = j = dùng cho phần ảo Nhân với i j yêu cầu trươờng hợp này, sin(.5)i sin(.5)j ý nghĩa MATLAB Cuối với kí tự i j, nhơư hai ví dụ đầu 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 điều khiển đặc biệt cho số phức xuất hiện, MATLAB khơng cầu nhươ Tất phép tính tốn học thao tác đơược nhươ số thực thông thơường: % Từ liệu % Bình phơương i phải -1 >> % find the distance from the origin (0,0) >> Z = sin(R)./R; % calculate sin(r)/ r Ma trËn R chøa b¸n kÝnh điểm [X,Y], khoảng cách từ điểm đến tâm ma trận Cộng thêm eps để không để xảy phép chia cho Ma trận Z chøa sine cđa b¸n kÝnh chia cho b¸n kÝnh điểm sơ đồ Câu lệnh sau vẽ đồ thị lới: >> mesh(X,Y,Z) Đồ thị đơn sắc Tuy nhiên bạn thay đổi màu sắc với trợ giúp MATLAB rễ dàng bạn đọc đến phần colormaps Trong ví dụ này, hàm mesh xắp xếp giá trị phần tử ma trận vào điểm (Xị,Yị,Zị) không gian ba chiều mesh vẽ ma trận đơn tơng tự nh với đối số; mesh(Z), sử dụng điểm (i,j,Zị) Nh Z đợc vẽ ngợc lại với số nó, trờng hợp mesh(Z) đơn giản chia lại độ khắc trục x, y theo c¸c chØ sè cđa ma trËn Z Bạn hÃy thử tạo ví dụ cho trờng hợp này? Đồ thị bề mặt ma trận Z trông nh đồ thị lới trớc đó, ngoại trừ khoảng cách hai đờng khác (gọi patchs) Đồ thị loại dùng hàm surf, có tất đối số nh hàm mesh HÃy xem ví dụ dới (Hình 18.4): >> surf(X,Y,Z) 70 Để làm rõ thêm vài chủ đề, quay lại hàm peaks đà đa phần trớc Đồ thị lới không gian chiều hàm đợc đa nh sau (hình 18.5): >> mesh(peaks) >> title('Mesh Plot of Peaks function') cđa hai cđa ho¹ 71 Đồ thị đờng viền cho ta thấy đợc độ nâng độ cao hình Trong MATLAB đồ thị đờng viền không gian chiều tơng tự nh không gian ba chiều nhng hàm gọi contour3 Đồ thị sử dụng lệnh đợc minh bảng khắc mµu 6.3 Thao tác với đồ thị MATLAB cho phép bạn khai báo góc để từ quan sát đợc đồ thị không gian ba chiều Hàm view(azimuth, elevation ) thiÕt lËp gãc xem b»ng viƯc khai b¸o azimuth elevation Elevation mô tả vị trí ngời quan sát, xem nh góc đo độ hệ trục x-y Azimut mô tả góc hệ trục nơi ngời quan sát đứng Azimuth đợc đo độ từ phần âm trục y Phía âm trục y có thĨ quay theo chiỊu kim ®ång hå mét gãc -37.5 độ từ phía bạn Elevation góc mà mắt bạn thấy đợc mặt phẳng x-y Sử dụng hàm view cho phép bạn quan sát hình vẽ từ góc độ khác Ví dụ elevation thiết lập âm, view nhìn hình từ phía dới lên Nếu azimuth thiết lập dơng, hình quay ngợc chiều kim đồng hồ từ điểm nhìn mặc định.Thậm chí bạn nhìn trực tiếp từ cách thiết lập view(0,90 ) Thực điểm nhìn mặc định chiều, x tăng từ trái qua phải, y tăng từ xuống dới, khuôn dạng view(2) hoàn toàn giống nh mặc định view(0, 90 ), view(3) thiết lập mặc định không gian chiều Lệnh view có dạng khác mà tiện ích sử dụng view([X,Y,Z ]) cho phép bạn quan sát vector chứa hệ trục toạ độ decac không gian chiều Khoảng cách từ vị trí bạn quan sát đến gốc toạ độ không bị ảnh hởng Ví dụ, view([0 10 ]), view([0 -1 ]) vµ view(0, ) cho kết nh Các thông số azimuth elevation mà bạn quan sát lấy lại đợc cách dùng [az, e] = view VÝdô: >> view([-7 -9 7]) >> [az,el] = view az = -37.8750 el = 31.5475 Một công cụ hữu dụng khác quan sát đồ thị không gian chiều hàm rotate3d Các thông số Azimtuh elevation đợc tác động chuột, rotate3d on cho phÐp cht can thiƯp, rotate3d off kh«ng cho phÐp LƯnh hidden dấu nét khuất Khi bạn vẽ đồ thị, số phần bị che khuất phần khác, dùng lệnh nét khuất bị dấu đi, bạn nhìn phần tầm nhìn bạn Nếu bạn 72 chuyển đến hidden off, bạn thấy phần khuất qua mạng lới Dới vÝ dô: >> >> >> >> >> mesh(peaks(20)+7) hold on pcolor(peaks(20)) hold off title('Mesh with hiden on') B©y giê h·y bỏ chế độ dấu nét khuất ta thÊy sù kh¸c nhau: >> hidden off >> title('Mesh with Hidden Off ') 73 6.4 Các đặc điểm khác đồ thị khơng gian 3D Hµm ribbon(x, y ) tơng tự nh plot(x, y ) ngoại trừ cột y đợc vẽ nh dải riêng biệt không gian ba chiều Dới đồ thị hình sine: >> x=linspace(0,10,50); >> y=sin(pi*x); >> ribbon(y,x) 74 ã Hàm clabel tăng thêm độ cao cho đồ thị đờng viền Cã ba mÉu clabel(cs), clabel(cs, V ) vµ clabel( cs, manual) clabel(cs), cs cấu trúc đờng viền đợc trả từ lệnh contour, cs=contour(z), lấy nhÃn tất đồ thị đờng viền với độ cao Vị trí nhÃn đợc lấy ngẫu nhiên clabel (c, manual) định vị nhÃn đờng viền vị trí kích chuột tơng tự nh lệnh ginput đà nói Nhấn phím Return kết thúc việc tạo nhÃn ã Hàm contourf vẽ đồ thị đờng viền kín, không gian đờng viền đợc lấp đầy màu ã Hai mẫu trạng thái lệnh mesh dùng với đồ thị lới là: meshc vẽ đồ thị lới thêm đờng viền bên dới, meshz vẽ đồ thị lới đồ thị có dạng nh che ã Hàm waterfall đợc xem nh mesh ngoại trừ điều hàm mesh xuất hớng x ã Có hai mẫu trạng thái lệnh surf, surfc vẽ đồ thị surf thêm đờng bao bên dới, surflvex vẽ đồ thị surf nhng thêm vào chiếu sáng bề mặt từ nguồn sáng Cấu trúc tổng quát surfl( X,Y, Z, S, K ) X, Y,và Z tơng tự nh surf, S vector tuỳ chọn hệ toạ độ decac (S=[Sx Sy Sz]) toạ độ cầu (S=[az,el]) hớng nguồn sáng Nếu không khai báo, giá trị mặc định S 45 độ theo chiều kim đồng hồ từ vị trí ngời quan sát, S vector tuỳ chọn phần đóng góp tuỳ thuộc vào nguồn sáng bao quanh, phản chiếu ánh sáng hệ số phản chiếu (K=[ka,kd,ks,spread]) >> colormap(gray) >> surfl(peaks) >> title('surf1 plot of peaks with default lighting') 75 ã fill3, phiên chiều fill, vẽ đa giác không gian ba chiều Khuôn dạng tổng quát fill3(x, y, z, c), chiều đứng đa giác đợc ba thành phần x, y, z Nếu c kí tự, đa giác đợc lấp đầy màu nh bảng màu c vector hàng có thành phần ([r g b]) r, g b giá trị thay cho màu đỏ, xanh xanh da trời Nếu c vector ma trận, đợc sử dụng nh số sơ đồ màu Nhiều đa giác đợc tạo cách cho thêm nhiều đối số nh fill3 (x1, y1, z1,c1, x2, y2, z2, c2, ) Ví dụ sau vẽ ngẫu nhiên tam giác với màu: >> color(cool) >> fill3(rand(3,4),rand(3,4),rand(3,4),rand(3,4)) ã bar3 bar3h phiên chiều bar barh, bie3 phiên ban pie 6.5 Bng mu Màu biểu đồ màu đợc đề cập đến số ví dụ phần trớc Trong phần nói rõ chúng MATLAB định nghĩa biểu ®å mµu nh lµ mét ma trËn cã cét Mỗi hàng ma trận định nghĩa màu riêng biệt sử dụng số dải Những số giá trị RGB, độ nhạy màu thành phần đỏ, xanh cây, 76 xanh da trời màu thành phần tạo Một số mẫu đợc cho bảng dới đây: Đỏ 1 0 1 -5 -5 ®ång -49 Xanh màu đen trắng đỏ xanh xanh da trời vàng tím đỏ lam xám -5 xám trung bình ®á tèi -62 ngäc xanh biĨn Xanh da trêi 0 1 -5 -40 đỏ -83 Dới số hàm MATLAB để tạo bảng màu trên: Function Mô tả bảng màu hsv Giá trị màu bÃo hoà (HSV) hot đen-đỏ-vàng-trắng gray xám cân tuyến tính bone xám có pha nhẹ với màu xanh 77 copper sắc thái màu đồng pink màu hồng nhạt nhẹ white trắng hoàn toàn flag xen kẽ đỏ, trắng, xanh da trời, đen jet thay đổi màu bÃo hoà prism có màu sắc lăng kính cool màu xanh tím lines màu nét vẽ summe Bóng xanh vàng autumn Bóng đỏ vàng winter Bóng xanh xanh da trời spring Bãng cđa magenta vµ yellow 6.6 Sử dụng bảng màu Câu lệnh colormap(M) cài đặt ma trận M nh bảng màu đợc sử dụng hình Ví dụ: colormap(cool) cài đặt version 64 đầu vào bảng màu cool Hàm plot plot3 không dùng bảng màu trên, chúng sử dụng màu liệt kê bảng kiểu đờng, điểm đánh dấu, màu plot Phần lớn hàm vẽ khác nh mesh, surf, contour, fill, pcolor biến nó, sử dụng bảng màu Sau ví dụ dùng tham số màu cho hàm surf để hiển thị góc quan s¸t : >> [X,Y,Z]=peaks(30); >> surf(X,Y,Z,atan2(X,Y)) >> colormap(hsv),shading flat 78 >> axis([-3 -3 -6.5 8.1]),axis off >> title('using a color Argument to surf') 6.7 Sử dụng màu thờm thụng tin Màu đợc dùng để thêm thông tin vào đồ thị chiều đợc sử dụng để tạo thành chiều thứ t Các hàm nh mesh surf biến đổi màu dọc theo trục z, trừ đối số màu đợc đa nh surf(X,Y,Z) hoàn toàn tơng đơng với surf(X,Y,Z,t ) thành phần thứ t đợc dùng nh số biêu đồ màu Điều khiến cho đồ thị đầy màu nhng lại không thông tin mà trục z đà tồn Dới số cách sử dụng đối số màu để thêm thông tin nhấn mạnh thông tin đà tồn ®å thÞ >> >> >> >> >> >> >> >> >> >> >> >> >> 79 x=-7.5: 5:7.5; y=x % create a data set [X,Y]=meshgrid(x,y); %create plaid data R=sqrt(X.^2+Y.^2) +eps % create radial data Z=sin(R)./R; % create a sombrero subplot(2,2,1),surf(X,Y,Z), title('Color Varies with the Z_axis') subplot(2,2,2),surf(X,Y,Z,R), title('Color Varies With the Radius') subplot(2,2,3),surf(X,Y,Z,del2(Z)), title('Color Varies with Curvature') [dZdx,dZdy]=gradient(Z); %compute the slope dZ=sqrt(dZdx.^2+dZdy.^2) %compute the slope's manitude subplot(2,2,4),surf(X,Y,Z,dZ) >> title('Color Varies With the slope Magnitude') 6.8 Hiển thị bảng màu B¹n cã thể hiển thị bảng màu theo số cách sau Một cách xem tất phần tử trong ma trận bảng màu c¸ch trùc tiÕp: >> hot(8) ans = 0.3333 0.6667 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0 0.3333 0.6667 1.0000 1.0000 1.0000 0 0 0 0.5000 1.0000 Thêm vào đó, hàm pcolor đợc sử dụng để biểu diễn bảng màu HÃy thử ví dụ vài lần cách dùng hàm colormap khác thay đổi tham số n: >> >> >> >> 80 colormap(jet(n)) n=8; colormap(jet(n)) pcolor([1:n+1;1 :n+1]') >> title('using pcolor to display a colormap') Hàm colorbar thêm màu đứng màu ngang (cân chỉnh màu ) vào cửa sổ hình vẽ bạn, đa biểu đồ màu cho trục colorbar( h) định vị màu ngang dới hình vẽ bạn colorbar( v) định vị màu đứng bên phải hình vẽ bạn colorbar đối số thêm màu ngang, màu không tồn cập nhật tån t¹i >> [X,Y,Z] = peaks; >> mesh(X,Y,Z ); >> colormap(hsv) >> axis([-3 -3 -6 8]) >> colorbar 81 6.9 Thiết lập thay đổi bảng màu Thùc tế colormaps ma trận, có nghĩa bạn thao tác chúng giống nh ma trận khác Hàm brighten nhờ vào đăc điểm thay đổi colormap độ tăng giảm độ nhạy màu đậm bighten(n) với bighten(-n) phục hồi colormap ban đầu Lệnh newmap=brighten(n) tạo màu sáng tối colormap hiên mà không làm thay đổi biêủ đồ màu Lệnh newmap=brighten(cmap,n) điều chỉnh phiên màu đà đợc khai báo mà không làm ảnh hởng đến colormap cmap brighten(gcf, n) làm sáng tất đối tợng hình vẽ Bạn tạo colormap riêng bạn cách đa ma trận mymap m hàng,3 cột cài đặt với colormap(mymap) giá trị ma trận colormap phải thuộc khoảng từ đến Nếu bạn cố gắng sử dụng ma trận với nhiều cột chứa giá trị bé thua lớn hơn1 colormap đa thông báo lỗi Bạn kết nối colormap theo kiểu toán học Mặc dù kết đoán trớc đợc Ví dụ, biểu đồ có tên gọi pink : >> pinkmap = sqrt (2/3*gray+1/3*hot); Bởi colormap ma trận, chúng đợc vẽ đồ thị Lệnh rgbplot vẽ đồ thị giá trị colormap tơng tự nh lệnh plot, nhng sử dụng màu đỏ, màu xanh xanh da trời cho nét vẽ rgbplot(gray) cho biết ba màu tăng tuyến tính đồng LƯnh rgbplot víi mét sè colormap kh¸c nh jet, hsv, prism Giá trị cmin cmax đợc trả lại caxis đối số Chúng thờng giá trị lớn nhỏ liệu, caxis([cmin cmax ]) sử dụng colormap nguyên cho liệu dải cmin cmax, điểm liệu lớn cmax bị chia thành màu kết hợp với cmax Và điểm liệu có giá trị nhỏ cmin bị chia thành màu kết hợp với cmin Nếu cmin nhỏ min(data) cmax lớn max(data ), màu kết hợp với cmin cmax không đợc sử dụng ; phần nhỏ colormap đợc sử dụng caxis(auto) hồi phục giá trị mặc định cmin cmax Ví dụ sau đợc minh hoạ colorplate4 >> pcolor([1:17;1:17]') >> title('Default color range') 82 >> colormap(hsv(8)) >> axis('auto') >> colorbar >> caxis ans = 17 83 CÁC THƯ VIỆN TRỢ GIÚP VÀ XỬ LÝ TÍN HIỆU TRONG MATLAB 84 ... số trang diƠn t¶ chi? ??u thø ba cđa m¶ng, cung cÊp mét cách hình dung mảng ba chi? ??u nh mảng hai chi? ??u, trang xếp thứ tự từ cuối nh sách Đối với mảng có số chi? ??u cao hơn, tên chung, khó tởng tợng!... tợng! Thao tác với mảng nhiều chi? ??u giống nh thủ tục đa mảng chi? ??u hai chi? ??u Ngoài MATLAB cung cấp số hàm thao tác trực tiếp mảng nhiều chi? ??u: s = size(A) Cho n_số chi? ??u A, trả vector hàng s với... 2.6000 y1= y2= y3= y4= >> gcd(18,81) % ơước số chung lớn 18 81 = % 162 bội số chung lớn 18 81 ans= >> lcm(18,81) % ơước số chung lớn 18 81 % 162 bội số chung lớn 18 81 ans= 162 2.2.3 Số phức Một đặc