1. Trang chủ
  2. » Công Nghệ Thông Tin

huong dan su dung malap

106 731 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 106
Dung lượng 8,23 MB

Nội dung

2/9/2010 Giới thiệu môn học Matlab Ứng dụng Lớp 08TH1D, 08TH2D Học kỳ năm học 20092009-2010 GV: ThS Nguyễn Thành Nhựt ntnhut@hcmus.edu.vn Mục tiêu môn học Mục tiêu • Giúp SV sử dụng phần mềm Matlab học tập, nghiên cứu ứng dụng thực tế Yêu cầu • Phần mềm Matlab 7.0 • Chủ động tự học với tài liệu cung cấp trước ntnhut@hcmus.edu.vn 2/9/2010 Nội dung môn học Giới thiệu sơ lược phần mềm Matlab Tính toán Ma trận, vector Biểu thức, hàm Vẽ đồ thị, biểu đồ Lập trình đơn giản Tính toán toán cao cấp ntnhut@hcmus.edu.vn Giờ học, phòng học Lý thuyết (sáng thứ tư, CS Tân Phong Q.7) • ca 1: 08TH2D phòng B204 • ca 2: 08TH1D phòng B203 • Từ tuần 25 (22/02/2010) đến tuần 35 (08/05/2010) Thực hành (Thứ sáu, PM 212, CS Ngô Tất Tố) • • • • • ca 1: 08TH1D N2 ca 2: 08TH1D N1 ca 3: 08TH2D N2 ca 4: 08TH2D N1 Từ tuần 30 (29/03/2010) đến tuần 40 (12/06/2010) ntnhut@hcmus.edu.vn 2/9/2010 Cách tính điểm ðề tài nộp báo cáo nhóm 10% Thi Thực hành kỳ 20% • Tuần lễ 33 (19/04/2010) Thi Thực hành cuối kỳ 70% ntnhut@hcmus.edu.vn Tài liệu học tập Bài giảng Bài tập thực hành Giáo trình: Brian Hahn - Daniel T Valentine, Essential MATLAB For Engineers and Scientists, Scientists, 3rd, 2002 www.mathworks.com Các tài liệu khác www.mathworks.com Trang web môn học • https://sites.google.com/site/nhutclass/matlab ntnhut@hcmus.edu.vn 2/9/2010 ntnhut@hcmus.edu.vn Giới thiệu Matlab “Matrix laboratory” Hệ thống tính toán khoa học kỹ thuật Ngôn ngữ lập trình cấp cao Thư viện hàm phong phú Mô phỏng, vẽ đồ thị, biểu đồ Phân tích liệu Phát triển phần mềm kỹ thuật Phiên nhất: Matlab 2010 ntnhut@hcmus.edu.vn 2/9/2010 Một số hệ tính toán khác Toán học Khoa học - Kỹ thuật Maple Mathematica MuPAD MathCad … Matlab O-Matrix … ntnhut@hcmus.edu.vn ntnhut@hcmus.edu.vn Maple 2/9/2010 Mathematica ntnhut@hcmus.edu.vn Cài đặt Matlab MS Windows Yêu cầu CD phần mềm Matlab 7.0 trở lên License Cấu hình máy tương đối mạnh, tối thiểu: ○ Windows 2000 ○ Pentium IV , 512 MB RAM ○ CD-ROM ○ HDD trống GB Các bước Chạy file setup.exe từ CD phần mềm theo hướng dẫn chương trình cài đặt ntnhut@hcmus.edu.vn 2/9/2010 Toolbox Matlab Toolbox thư viện hàm sẵn có để hỗ trợ cho lĩnh vực tính toán cụ thể Các toolbox thông dụng Matlab Fuzzy Logic Image Processing Neural Network Signal Processing Simulink Symbolic Math ntnhut@hcmus.edu.vn Khởi động/Thoát chương trình Matlab Khởi động Nhấp đúp trái chuột vào biểu tượng Matlab Desktop Start \ Programs \ Matlab … Thoát File \ Exit Crtl + Q >> quit Thực thi lệnh >> + Enter ntnhut@hcmus.edu.vn 2/9/2010 Giao diện Matlab ntnhut@hcmus.edu.vn Các phím điều khiển Phím Chức Enter thi hành lệnh Esc Xoá dòng lệnh hành ↑,↓ gọi lệnh trước ←,→ di chuyển qua lại ký tự backspace, delete xoá ký tự trước, sau home, end đầu, cuối dòng lệnh ntnhut@hcmus.edu.vn 10 2/9/2010 VD Các phím điều khiển Lệnh Kết >>3 + ans = >> + >> >> ↑ >> + >> ↓ >> >> 1+2 1+2 “←” >> 1+ +2 >> 1+2_ >> >>11+2 >>1+ >>1 +2 >>12 ntnhut@hcmus.edu.vn 11 Biểu thức (expression expression)) Matlab Một biểu thức Matlab chứa các: Biến (variable) Con số (number) / số (constant) Phép toán (operator) Hàm (function) Ví dụ >> -2^3 + * (5 – 7) \ * >> huge = exp(log(realmax)) ntnhut@hcmus.edu.vn 12 2/9/2010 Một số ví dụ biểu thức Matlab >> rho = (1+sqrt(5))/2 rho = 1.6180 >> a = abs(3+4i) a= >> huge = exp(log(realmax)) huge = 1.7977e+308 ntnhut@hcmus.edu.vn 13 Biến (variable variable)) Không cần khai báo kiểu, số chiều, độ dài biến Mỗi tên xuất với phép gán, Matlab tạo biến cấp phát nhớ cho Ví dụ: sosv = 110 tạo biến tên sosv (là ma trận 1x1) lưu giá trị 110 Nếu biến cũ, thay đổi nội dung thực phép gán Ví dụ: >>X = >>X = X = ntnhut@hcmus.edu.vn 14 2/9/2010 Trong 3D Hàm ezplot3(x,y,z) Ví dụ › syms x y z t › x = 3*t/(1 + t^3) › y = 3*t^2/(1 + t^3) › z = sin(t) › ezplot3(x,y,z) ezcontour / ezcontourf ezmesh / ezmeshc ezsurf / ezsurfc 20 GUIDE Giao diện đồ hoạ người dùng Matlab GUI • “Graphical User Interface Development Environment” • Tạo chương trình có giao diện đồ hoạ • >> guide Cửa sổ GUIDE Quick Start Mở ví dụ Matlab GUI Ví dụ vẽ đồ thị biểu đồ Giao diện GUI ví dụ Menu Push Button RU Danh sách đồ thị Axes Chọn đồ thị vẽ hấn cập nhật Chọn Đồ thị xuất Tạo chương trình GUI đơn giản Bài tập Bước 1: >> guide • Tạo nút ấn vào hiện hành Đặt tên file chương trình GUIDE Layout editor Các components Bước Chọn đặt pushbutton Bước Chỉnh thuộc tính component Thay đổi giá trị thuộc tính Chuỗi hiển thị button Tên hàm xử lý Callback Chạy thử lần Nothing happen! Chưa cài đặt xử lý cho button Cài đặt Callback cho component Source code chương trình Thêm code xử lý Đặt tên cho chương trình • Nhấn phải chuột vào khoảng trống • Chọn Property Inspector • Chỉnh Name: Time Chạy lại chương trình Bài tập Very good! Vẽ đồ thị Yêu cầu HandleVisibility chương trình callback Chọn đặt Axes Thêm button ‘Plot’ HandleVisibility Axes on Cài đặt Callback cho button ‘Plot’ Chạy thử lần Thêm button ‘grid on/off’ ‘clear’ Cài đặt callback cho Grid on/off Cài đặt callback cho Clear Chạy lại chương trình Bài tập thực hành Nâng cấp vẽ đồ thị thành vẽ nhiều đồ thị nhiều hệ trục toạ độ có nút điều khiển riêng Hướng dẫn: • Hàm axes(H) • Biến handles.[tagname] • Hàm set(H,thuộc tính), get(H,thuộc tính) • Xem Ví dụ Matlab Help Huỳnh Văn Kha 5/5/2010 Push Button (Nút nhấn) Giao diện người dùng (GUI) Viết lệnh cho thành phần GUI Huỳnh Văn Kha 5/5/2010 Hàm xử lý Callback Push Button • Khi nhấn chuột vào nút nhấn, hàm sau gọi function pushbutton1_Callback(hObject, eventdata, handles) Tên tag button VD: nhấn nút thay tên nút (thuộc tính ‘String’ nút) function pushbutton1_Callback(hObject, eventdata, handles) set(gcbo,'String',‘ten gi do'); Huỳnh Văn Kha 5/5/2010 Một số thuộc tính quan trọng Button • Enable: cho phép nhấn (on/off) • String: chuỗi hiển thị nút • Tag: tên đối tượng nút phân biệt với đối tượng khác chương trình • Value: giá trị nút Huỳnh Văn Kha 5/5/2010 Huỳnh Văn Kha 5/5/2010 Thuộc tính Toggle Button Toggle Button, Radio Button Check Box (Nút bật tắt, Nút chọn Ô check) • Thuộc tính Value thuộc tính Max nút nhấn chọn, ngược lại thuộc tính Min function togglebutton1_Callback(hObject, eventdata, handles) button_state = get(hObject,'Value'); if button_state == get(hObject,'Max') % Toggle button ñược nhấn elseif button_state == get(hObject,'Min') % Toggle button không ñược nhấn end Huỳnh Văn Kha 5/5/2010 Toggle Button, Radio Button Check Box (Nút bật tắt, Nút chọn Ô check) • Mặc định Max=1, Min=0 • Cũng thay đổi trạng thái cho Toggle Button, Radio Button Check Box cách đặt lại thuộc tính Value, Max, Min • Ví dụ: set(handles.togglebutton1,'Value', get(handles.togglebutton1,'Max')) đặt nút togglebutton1 sang trạng thái nhấn set(handles.radiobutton1,'Value', get(handles.radiobutton1,'Min')) đặt nút radiobutton1 sang trạng thái bỏ chọn Huỳnh Văn Kha Edit Text (Ô nhập văn bản) 5/5/2010 Huỳnh Văn Kha 10 5/5/2010 Huỳnh Văn Kha Edit Text (Ô nhập văn bản) 5/5/2010 Nhận liệu số từ Edit Text • Thuộc tính String trả chuỗi Muốn nhận liệu số sử dụng hàm str2double Nếu người dùng không nhập số str2double trả NaN function edittext1_Callback(hObject, eventdata, handles) user_entry = str2double(get(hObject,'string')); if isnan(user_entry) errordlg('You must enter a numeric value','Bad Input','modal') return end % Proceed with callback • Thuộc tính String chứa chuỗi mà người dùng nhập vào function edittext1_Callback(hObject, eventdata, handles) user_string = get(hObject,'String'); % lệnh xử lý • Nếu thuộc tính Max, Min đặt cho Max– Min>1 người dùng nhập nhiều hàng • Callback gọi thay đổi nội dung Edit Text mà nhấp chuột bên (nhưng bên GUI), người dùng nhấn Enter (với Edit Text hàng), Ctrl+Enter (với Edit Text nhiều hàng) 11 Huỳnh Văn Kha 12 5/5/2010 Slider (thanh trượt) • Thuộc tính Value xác định trạng thái Slider • Thuộc tính Max Min xác định cực đại cực tiểu cho thuộc tính Value Slider function slider1_Callback(hObject, eventdata, handles) slider_value = get(hObject,'Value'); % Proceed with callback Huỳnh Văn Kha List Box Pop-up Menu 5/5/2010 13 Huỳnh Văn Kha 14 5/5/2010 Huỳnh Văn Kha 5/5/2010 Gọi callback List Box List Box Pop-up Menu • Callback List Box gọi sau kiện nhả chuột nhấn số phím đặc biệt • Khi phím mũi tên thay đổi thuộc tính Value List Box, callback Callback gọi đồng thời đặt thuộc tính SelectionType figure thành normal • Phím Enter Space không làm thay đổi thuộc tính Value List Box, Callback gọi, đồng thời đặt thuộc tính SelectionType figure thành open • Nếu người dùng nhấp đúp chuột Callback gọi sau lấn nhấp MatLab đặt thuộc tính SelectionType figure thành normal lần thứ thành open lần thứ hai • Do ta biết người dùng nhấp đúp chuột hay không dựa vào việc truy vấn thuộc tính SelectionType figure • Thuộc tính Value chứa số mục chọn Chỉ số mục • Thuộc tính String mảng cell chứa danh sách mục chọn List Box Pop-up Menu • Ví dụ cho phép lấy giá trị chuỗi chọn List Box function listbox1_Callback(hObject, eventdata, handles) index_selected = get(hObject,'Value'); list = get(hObject,'String'); item_selected = list{index_selected}; % Convert from cell array to string 15 Huỳnh Văn Kha Button Group 16 5/5/2010 Huỳnh Văn Kha 5/5/2010 Button Group • Button Group chứa thành phần GUI, đồng thời giúp ta quản lý việc lựa chọn Radio Button Toggle Button • Nếu Button Group chứa Radio Button, Toggle Button hai Button Group cho phép số chúng chọn Nếu chọn khác bỏ chọn • Callback SelectionChangeFcn Button Group gọi có thay đổi chọn • Tham số đầu vào hObject trỏ tới Radio Button Toggle Button chọn • Các callback thành phần khác GUI truy xuất tới đối tượng chọn thông qua thuộc tính SelectedObject Button Group 17 Huỳnh Văn Kha 18 5/5/2010 Huỳnh Văn Kha Axes (Hệ trục tọa độ) 5/5/2010 Axes (Hệ trục tọa độ) • Hệ trục tọa độ dùng để vẽ đồ thị hiển thị hình ảnh • Muốn vẽ đồ thị lên hệ trục tọa độ, ta thêm handles tới hệ trục tọa độ vào hàm muốn sử dụng • Ví dụ sau vẽ đồ thị lên hệ trục axes1 [X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); meshc(handles.axes1,X,Y,Z); axis([-3 -3 -10 5]); 19 Huỳnh Văn Kha Menu 20 5/5/2010 Huỳnh Văn Kha 5/5/2010 Menu • Để soạn thảo menu chọn biểu tượng Tên menu (thể GUI) Tạo menu Thuộc tính tag (duy cho menu) Tạo menu Callback – thi hành menu chọn Hiển thị hàm callback menu [...]... 9 6 7 12 Các phần tử cách nhau bằng 4 15 14 1 khoảng trắng hoặc dấu , 3 ntnhut@hcmus.edu.vn Tổng các cột và chuyển vị của ma trận A= 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 >> A’ ans = >> sum(A) ans = 34 34 34 34 >> sum(A’) 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1 ans = 34 34 34 34 ntnhut@hcmus.edu.vn Nguyễn Thành Nhựt 4 2 2/9/2010 Đường chéo của ma trận A= 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 >> diag(A)... File m là một file văn bản ghi các dòng lệnh Matlab Có thể soạn thảo bằng MATLAB Editor hoặc bất kỳ trình soạn thảo văn bản nào Lưu file có đuôi m Gõ tên file để thực thi nội dung các dòng lệnh trong file Ví dụ: tạo một file có nội dung như sau: A=[ 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0]; Lưu với tên magik.m Dòng lệnh >>magik sẽ đọc file và tạo biến A là ma trận như trên... 86 79 72 65 58 51 0:pi/4:pi 0 0.7854 1.5708 2.3562 3.1416 ntnhut@hcmus.edu.vn Nguyễn Thành Nhựt 8 4 2/9/2010 Dùng dấu hai chấm trong chỉ số Ví dụ: A(1:k,j) gồm k số đầu tiên ở cột thứ j của ma trận A sum(A(1:4,4)) tính tổng 4 số đầu tiên ở cột thứ 4 của ma trận A Dấu hai chấm đứng một mình sẽ chỉ toàn bộ phần tử của dòng hoặc cột Từ khoá “end” chỉ chỉ số cuối cùng của dòng hoặc cột Ví dụ: A(:,end)... phương magic(n) MT các số thực ngẫu nhiên từ 0 đến 1 rand(m,n) Z = zeros(2,4) F = 5*ones(2,3) Z= F= 0000 0000 555 555 ntnhut@hcmus.edu.vn 11 hập ma trận bằng hàm load Giả sử ta có một file magik.dat có nội dung như sau (các số cách nhau bởi khoảng trắng) 16.0 3.0 2.0 13.0 5.0 10.0 11.0 8.0 9.0 6.0 7.0 12.0 4.0 15.0 14.0 1.0 ntnhut@hcmus.edu.vn Nguyễn Thành Nhựt Dòng lệnh >>load magik.dat sẽ đọc file magik.dat,... mạnh của Matlab so với các ngôn ngữ lập trình khác là tính toán rất nhanh trên ma trận 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 ntnhut@hcmus.edu.vn Nguyễn Thành Nhựt 2 1 2/9/2010 hập ma trận Nhập trực tiếp danh sách các phần tử Phát sinh ma trận bằng các hàm sẵn có Nhập từ file Tạo ma trận bằng các file m A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] A= Dấu [ và ] mở đầu và kết thúc 16 3 2 13 nhập ma trận... toán trên từng phần tử VD: A = [1 2 3; 4 5 6] A + 3 [4 5 6; 7 8 9] A(1:2, 2:3) = 0 A = [1 0 0; 4 0 0] Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn ntnhut@hcmus.edu.vn 10 5 2/9/2010 Chỉ số logic Logical Subscripting Các phép toán logic >, 2 0 ~(3==4) 1 Mảng các giá trị logic có thể dùng trong việc trích phần

Ngày đăng: 21/09/2016, 09:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w