Hướng dẫn sử dụng matlab simulink pdf năm 2024

Cùng với sự phát triển nhanh chóng của tin học, MATLAB đang ngày càng trở thành một công cụ hữu hiệu trợ giúp đắc lực cho quá trình nghiên cứu và học tập. Hiện nay ở hầu hết các trường đại học danh tiếng trên thế giới MATLAB được coi là một môn học quan trọng trong chương trình đào tạo các hệ, các ngành khác nhau.

MATLAB là một trong những hệ thống được soạn thảo hết sức chu đảo, mạch lạc với việc áp dụng nhiều thuật toán phong phủ, đặc biệt như chính tên của nó – "MATrix LABoratory", thuật toán mà trận được coi là hạt nhân quan trọng trong lập trình MATLAB. Cú pháp ngôn ngữ của chương trình MATLAB được thiết lập tinh tế đến mức người sử dụng không có cảm giác là đang tiếp xúc với các phép tính phức tạp của ma trận. Ma trận được áp dụng rộng rãi trong các bài toán kỹ thuật phức tạp như hệ thống điện lực, tự động hóa, các hệ thống cơ học động, cơ học tĩnh, thủy khi v.v., vì vậy MATLAB chính là phần mềm hết sức thuận tiện và hiệu qua đối với các lĩnh vực này. Không dừng lại ở đó, hiện nay MATLAB đã vượt ra ngoài giới hạn của các hệ thống ma trận và trở thành một hệ thống vạn năng kết hợp (integration) cực mạnh, áp dụng cho hầu hết các lĩnh vực khoa học kỹ thuật, sinh học, hóa học v.v.

Có thể nói MATLAB là sự kết hợp độc đáo của công nghệ tin học hiện đại với bộ sưu tập các phương pháp tính, được tích lũy, đúc kết kinh nghiệm, kỹ năng qua hàng nghìn năm phát triển của toán học. MATLAB thu hút hàng nghìn chuyên gia trong nhiều lĩnh vực tham gia phát triển và hoàn thiện, chính vì vậy mà liên tục có những phiên bản mới xuất hiện thay thể các phiên bản cũ.

Là một hệ thống mở, MATLAB kết hợp rất nhiều phương pháp tinh mà có thể áp dụng thuận tiện cho bất kỳ người sử dụng nào. MATLAB có đặc điểm linh hoạt và dễ thích nghi, vì vậy cho dù là người mới bắt đầu hay là một chuyên gia sành sói, vẫn có thể có thể sử dụng MATLAB một cách thoải mái và cuốn hút. MATLAB rất ưu ái đối với người sử dụng, bạn có thể tự tạo ra chương trình riêng cho chuyên môn của mình và MATLAB sẵn sàng đáp ứng. MATLAB cho phép tiếp cận và áp dụng dễ dàng các hàm có sẵn để giải các bài toán cần thiết và đồng thời cả thể sáng tạo ra các m.file mà khi được lưu giữ với thủ tục phù hợp, MATLAB coi như là các hàm của chính hệ thống. Điều đó cho phép mở rộng khả năng vô hạn của MATLAB. Đó cũng chính là ưu điểm nổi bật của MATLAB mà không có chương trình nào có được

MATLAB thực sự là một phương tiện hữu hiệu, cho phép nhân khả năng của con người trong lĩnh vực học tập và nghiên cứu và ứng dụng khoa học kỹ thuật lên nhiều lần, nhưng ở nước ta còn rất ít người biết được điều đó. Hiện nay ở Việt Nam, một số trường đại học kỹ thuật cũng đã bắt đầu đưa MATLAB vào giảng dạy và nghiên cứu, nhưng mức độ áp dụng còn rất khiêm tốn. Mặc dù các tài liệu nước ngoài về MATLAB khá phong phủ, các thông tin về MATLAB có thể dễ dàng tìm thấy trên các trang Web, nhưng các tải liệu bằng tiếng Việt, đặc biệt là các giáo trình MATLAB còn rất nghèo nàn. Cuốn giáo trình này được viết theo chương trình tin học ứng dụng cho các trường đại học kỹ thuật, với mong muốn tạo điều kiện thuận lợi cho quá trình giảng dạy, học tập và nghiên cứu trong các trường đại học, cao đẳng.

Giáo trình bao gồm hai phần:

Phần đầu giới thiệu các nội dung cơ bản của MATLAB. gồm 8 chương:

Chương 1. Khái quát chung về MATLAB

Chương 2. Lập trình trên MATLAB

Chương 3. Ma trận

Chương 4. Xử lý số liệu

Chương 5. Đồ họa

Chương 6. Giải phương trình và tính toán tối vui

Chương 7. Giải toán cao cấp.

Chương 8. Simulink.

Phần hai sẽ bao gồm các bài toán cụ thể cho các chuyên ngành. Một số hàm m file do tác giả biên soạn để giai các bài toán chuyên ngành, bạn đọc muốn sử dụng có thể liên hệ với tác giả.

Nội dung của các chương được trình bày hết sức ngắn gọn với rất nhiều vi dụ minh họa, bạn đọc có thể tự kiểm tra sự nắm bắt của mình qua các bài tập và câu hỏi ôn tập. Mặc dù đã hết sức cố gắng, nhưng do trình độ có hạn, nên chắc chắn không thể tránh khỏi những thiếu sót, rất mong được bạn đọc lương thử và mong nhận được những nhận xét, góp ý để giáo trình ngày càng được hoàn thiện hơn. Các ý kiến của bạn đọc xin được gửi về địa chỉ của tác giả khanhtgepu.edu.vn, hoặc địa chỉ của nhà xuất bản: NXB KH&KT 70 Trần Hưng Đạo, Hà Nội.

  • 1. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 BỘ LAO ĐỘNG - THƯƠNG BINH & XÃ HỘI TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT VĨNH LONG ĐỒ ÁN MÔN HỌC Hướng dẫn sử dụng MATLAB & Simulink và ứng dụng điều khiển các hệ thống tự động Môn học: Đồồ án Điềồu khiể n 2 Họ và tên: MAI LÊ THÀNH NHÂN MSSV: 18007023 Giáo viên hướng dẫn: LÊ MINH THÀNH Vĩnh Long, tháng 12 năm 2021
  • 2. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN - Ý thức thực hiện: ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… - Nội dung thực hiện: ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… - Hình thức trình bài: ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… - Tổng hợp kết quả:  Tổ chức báo cáo trước hội đồng   Tổ chức chấm thuyết minh Vĩnh Long, Ngày … Tháng … Năm 2021 Người Hướng Dẫn
  • 3. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 LÊ MINH THÀNH 0 lOMoAR cPSD|2935381 LỜI CÁM ƠN Trong những lời đâu tiên báo cáo đồ án học phần này, em muốn gửi nhũng lời cám ơn và biết ơn trân thành nhất của mình tới tất cả những người đã hỗ trợ và giúp đỡ em cả về kiến thức và tinh thần trong quá trình thực hiện đồ án. Trước hết, em xin chân thành cám ơn thầy Lê Minh Thành, người đã trực tiếp hướng dẫn, nhận xét, tận tình chỉ bảo, giúp đỡ em trong suốt quá trình làm đồ án, để em có thể hoàn thiện đồ án một cách tốt nhất. Xin chân thành cảm ơn tới tất cả các thầy cô đã nhiệt tình dạy bảo, truyền đạt kiến thức cho chúng em trong suốt thời gian học tập dưới máy trường Đại Học Sư Phạm Kỹ Thuật Vĩnh Long, đặc biệt với các thầy cô tại Khoa Điện- Điện tử, các thầy cô đã luôn quan tâm , định hướng và tạo điều khiện thuận lợi cho em học tập, nghiên cứu và thực hiện đồ án. Em đã cố gắng để hoàn thiện Đồ án 2 một cách tốt nhất, nhưng do sự hạn chế về thơi gian và kiến thức nên không thể tránh khỏi những thiếu sót, rất mong sự đóng góp của thầy cô và các bạn. Xin chân thành cám ơn! Vĩnh Long, Ngày … Tháng … Năm 2021 Sinh Viên (Người thực hiện đồ án)
  • 4. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 MAI LÊ THÀNH NHÂN 1 lOMoAR cPSD|2935381 MỤC LỤC Trang NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN LỜI CÁM ƠN MỤC LỤC LỜI NÓI ĐẦU PHẦN 1: SƠ LƯỢC VỀ MATLAB ………………………………………………………………………………… I. Phần mềm Matlab ……………………………………………………………………………………….. II. Phạm vi ứng dụng …………………………………………………………………………………… III. Cài đặt phần mềm Matlab ………………………………………………………………………… PHẦN 2: GIỚI THIỆU VỀ MATLAB VÀ PHẠM VI ỨNG DỤNG………………………………………… CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ MATLAB……………………………………………………………… I. Giới thiệu về Matlab.…………………………………………………………………………………… 1.1 Khởi động và Giao Diện của Matlab…………………………………………………… 1.2 Cách thức sử dụng phần mềm Matlab …………………………………………………… 1.3. Các thức viết biểu thức, sử dụng biến, các phím chức năng …………………… II. Thao tác với các tệp trong Matlab ……………………………………………………………… 2.1. Các loại tệp được dùng trong Matlab…………………………………………………… 2.2. Các lệnh xử lý tệp .mat ……………………………………………………………… 2.3. Đường dẫn …………………………………………………………………………………… 2.4. Các lệnh xử lý m. file………………………………………………………………………… CHƯƠNG 2. XỬ LÝ DỮ LIỆU DẠNG MẢNG (MA TRẬN) TRONG MATLAB………………………………
  • 5. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 I. Các phương pháp tạo mảng dữ liệu ……………………………………………………………… 1.1 Phương pháp nhập trực tiếp từ bàn phím………………………………………… 1.2 Dùng toán tử " : "………………………………………………………………………… 1.3 Dùng hàm linspace và logspace:…………………………………………………… 1.4. Sử dụng các mảng chuẩn……………………………………………………………… 1.5. Mảng tạo từ tệp………………………………………………………………………… 2 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 6. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 II. Tham chiếu tới các phần tử của mảng, tạo các mảng con……………………………… 2.1 Nguyên tắc tham chiếu tới các phần tử của mảng………………………………………… 2.2 Các ứng dụng của việc truy cập các phần tử của mảng……………………………… III. Các phép tính thực hiện trên mảng……………………………………………………………… 3.1 Các phép toán thông thường……………………………………………………………… 3.2. Sử dụng các toán tử với dấu "."…………………………………………………… 3.3. Các hàm dùng trên mảng……………………………………………………………… CHƯƠNG 3. ĐỒ HỌA TRONG MATLAB………………………………………………………………………… 3.1. Những vấn đề chung………………………………………………………………………… 3.2. Đường cong biểu diễn mỗi quan hệ của các giá trị ………………………………………… 3.2.1. Đồ thị 2 chiều………………………………………………………………………… 3.2.2. Đồ thị 3 chiều (dạng lưới và bề mặt)…………………………………………………… 3.2. Tên của đồ thị…………………………………………………………………………………… 3.3. Các trục toạ độ…………………………………………………………………………………… 3.3.1. Điều khiển các trục toạ độ……………………………………………………………… 3.3.2. Các chú thích trên trục toạ độ…………………………………………………… 3.4. Các chú thích khác trên đồ thị……………………………………………………………… 3.5. Các thuộc tính của văn bản đồ hoạ……………………………………………………………… 3.5.1. Các thuộc tính của văn bản……………………………………………………………… 3.5.2. Các ký tự đặc biệt………………………………………………………………………… 3.5.3. Một số ví dụ………………………………………………………………………… 3.5.4. Các tuỳ chọn của lệnh plot……………………………………………………………… 3.6. Một số lệnh viết chữ khác………………………………………………………………………… 3.6.1 Lệnh gtext…………………………………………………………………………………… 3.6.2: Lệnh ginput………………………………………………………………………… 3.7. In ấn đồ thị …………………………………………………………………………………… CHƯƠNG 4. LẬP TRÌNH ỨNG DỤNG TRONG MATLAB…………………………………………………… I. Các loại dữ liệu dùng trong Matlab……………………………………………………………… 1. Dữ liệu số……………………………………………………………………………………
  • 7. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 3 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 8. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 2. Các phép tính trên số phức……………………………………………………………… 2.1 Nhập dữ liệu………………………………………………………………………… 2.2 các phép tính thực hiện trên số phức………………………………………… 2.3 Các hàm xử lý số phức…………………………………………………… 3. Dữ liệu dạng chuỗi……………………………………………………………… 3.1. Phép gán và tham chiếu đến dữ liệu dạng chuỗi…………………… 3.2. Tạo các mảng với phần tử là chuỗi………………………………………… 3.2.1 Tạo véc tơ cột các chuỗi:…………………………………………………… 3.2.2 Tạo mảng hoặc véc tơ hàng các chuỗi………………………………………… 3.3. Các hàm dùng trên chuỗi…………………………………………………… 3.3.1 Hàm chuyển đổi từ dữ liệu số sang chuỗi và ngược lại…………………… II. Nhập, xuất dữ liệu…………………………………………………………………………………… 1. Các lệnh nhập dữ liệu………………………………………………………………………… 1.1. Nhập từ bàn phím: Lệnh input…………………………………………………… 1.2. Nhập từ hộp thoại: Lệnh inputdlg………………………………………… 1.3. Nhập dữ liệu từ tệp: Lệnh fread…………………………………………………… 1.4. Lệnh fopen: ………………………………………………………………………… 1.5 Lệnh đóng tệp, fclose……………………………………………………………… 1.6 Lệnh fscanf: ………………………………………………………………………… 2. Các lệnh xuất dữ liệu………………………………………………………………………… 2.1. lệnh disp………………………………………………………………………… 2.2. Lệnh fprintf………………………………………………………………………… 2.3. Lệnh fwrite………………………………………………………………………… III. Các lệnh phân nhánh………………………………………………………………………… 1. Lệnh if…………………………………………………………………………………… 1.1 Cú pháp: Lệnh If……………………………………………………………… 1.2 Các toán tử logic……………………………………………………………… 1.3 Các hàm logíc……………………………………………………………… 2. Lệnh switch…………………………………………………………………………
  • 9. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 4 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 10. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 IV. Các vòng lặp…………………………………………………………………………………… 1. Vòng lặp xác định: for……………………………………………………………… 2. Vòng lặp không xác định: while…………………………………………………… V. Các chương trình con……………………………………………………………… 1.Phương pháp xây dựng các hàm và chương trình con……………………………… 2. Các đối số vào, ra………………………………………………………………………… CHƯƠNG 5. MÔ PHỎNG CÁC HỆ THỐNG ĐỘNG LỰC BẰNG SIMULINK……………………………… I. Giới thiệu về mô phỏng số ………………………………………………………………………… 1. Ý nghĩa và tầm quan trọng của mô phỏng số………………………………………… 2. Giới thiệu về các phần mềm mô phỏng ………………………………………… II. Trình tự thực hiện một quá trình mô phỏng.…………………………………………………… 1. Xây dựng cấu trúc mô phỏng: Sơ đồ khối………………………………………… 2. Xác lập giá trị các thông số của mô hình………………………………………… 3. Xác lập các điều kiện đầu…………………………………………………………… 4. Các kích động đưa vào hệ thống…………………………………………………… 5. Lựa chọn cách thức xuất kết quả…………………………………………………… 6. Điểu khiển việc thực thi quá trình mô phỏng.………………………………………… III. Sử dụng SIMULINK trong mô phỏng các hệ động lực………………………………………… 1. Các thao tác cơ bản………………………………………………………………………… 2. Chức năng và thao tác trên các khối thông dụng……………………………… 2.1. Nhóm các khối xử lý tín hiệu liên tục………………………………………… 2.2. Nhóm các khối thực hiện việc gọi hàm từ Matlab và hàm truyền………… 2.3. Nhóm các khối thực hiện thao tác toán học (Math)…………………… 2.4. Nhóm các khối xử lý tín hiệu…………………………………………………… 2.5. Nhóm các khối thực hiện chức năng xuất kết quả (Sinks)…………………… 2.6. Nhóm các khối thực hiện chức năng nhập dữ liệu (Sources)………… PHẦN 3: ỨNG DỤNG……………………………………………………………………………………………… ỨNG DỤNG SIMULINK ĐIỀU KHIỂN HỆ THỐNG LÒ NHIỆT………………………………………… 1.ỨNG DỤNG SIMULINK ĐIỀU KHIỂN HỆ THỐNG LÒ NHIỆT ………………………………
  • 11. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 5 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 12. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 1.1. Mục đích ………………………………………………………………………… 1.2. Giới thiệu Simulink ……………………………………………………… 1.2.1. Các khối sử dụng trong bài thí nghiệm …………………………………… 1.2.2 Các bước để xây dựng ứng dụng mới…………………………………… 2.Hàm truyền lò điện và mô hình của Ziegler-Nichols…………………………………… 2.1 Hàm truyền lò điện ………………………………………………………………………… 2.2 Mô hình của Ziegler-Nichols ……………………………………………………… 2.3. Thí nghiệm ………………………………………………………………………… 2.3.1. Chuẩn bị thí nghiệm ……………………………………………………… 2.3.2. Khảo sát hệ hở lò nhiệt, nhận dạng hệ thống theo mô hình Ziegler – Nichols. ….. 2.3.3. Khảo sát mô hình điều khiển nhiệt độ ON – OFF. …………………………………… 2.4 Khảo sát mô hình điều khiển nhiệt độ PID (phương pháp Ziegler – Nichols). ………………… KIỂM SOÁT MỰC NƯỚC HỆ BỒN ĐƠN DÙNG BỘ ĐIỀU KHIỂN PID SỐ……………………………… 1.Giới Thiệu…………………………………………………………………………………………… 2.Nội dung……………………………………………………………………………………………… 2.1 Mô hình toán của hệ bồn đơn ……………………………………………………………… 2.2 Hệ thống điều khiển rời rạc……………………………………………………………… 2.3. Mô phỏng ……………………………………………………………………………… 2.4. Điều khiển hệ bồn đơn dùng bộ điều khiển PID……………………………………… 2.5. Kết quả thực tế ……………………………………………………………………… 3. Kết luận………………………………………………………………………………………………
  • 13. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 6 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 14. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 PHẦN 1: SƠ LƯỢC VỀ MATLAB I. Phần mềm Matlab MATLAB là phần mềm ứng dụng của tập đoàn Mathworks (Mỹ). Đây là phần mềm xử lý toán học rất mạnh, thông qua việc thực hiện các phép toán trên ma trận (MAT - Matrix), được các chuyên gia toán học và máy tính đã lập trình các thuật giải thông qua các thư viện công cụ xử lý toán học (LAB - Laboratory). Phần mềm cũng cung cấp nhiều modulee khác nhau, phục vụ cho các lĩnh vực, các chuyên ngành cụ thể. - Định hướng của phần mềm Matlab là dùng cho những cán bộ nghiên cứu, thiết kế và lập trình. - Đối với ngôn ngữ lập trình thông thường để giải bài toán cơ học người ta phải thực hiện qua các bước sau: +Xây dựng mô hình cơ học → Xây dựng mô hình toán học → áp dụng phương pháp toán +Xây dựng thuật toán → Lập trình - Trong Matlab ta không cần quan tâm nhiều đến việc sử dụng phương pháp toán II. Phạm vi ứng dụng Matlab đóng vai trò như một công cụ tính toán mạnh cho phép nhanh chóng tính ra trị số của biểu thức phức tạp và lưu giữ trị số của biểu thức vào bộ nhớ của máy tính. Malab cung cấp các công cụ xử lý các mảng dữ liệu: véc tơ và ma trận, cho phép tính toán ra kết quả của các biểu thức với dữ liệu đầu vào là các véc tơ. Matlab cung cấp các hàm để giải quyết các vấn đề thường gặp trong kỹ thuật như: +Xử lý các đa thức (nhân, chia, tìm điểm 0 (nghiệm) của đa thức). + Giải các phương trình tổng quát. + Giải hệ phương trình tuyến tính. + Giải hệ phương trình vi phân. + Xử lý các tín hiệu đo bằng phép khai triển furier nhanh. + Các phép nội suy để xử lý dữ liệu trong bảng. + Thuật giải bài toán tối ưu. + Phép tích phân vi phân. + Công cụ đồ hoạ . Mat lab cung cấp công cụ lập trình để xây dựng các chương trình ứng dụng. Ngoài ra còn có các module ứng dụng riêng phục vụ cho nghiên cứu sâu như: + Giải các phương trình vi phân đạo hàm riêng phục vụ để giải quyết các bài toán bền dùng phương pháp phần tử hữu hạn + Simulink cho phép mô phỏng các cơ cấu máy + Stateflow: để nghiên cứu các dòng chảy khí hay chất lỏng + Fuzzy logic: nghiên cứu lôgic mờ + …v.v III. Cài đặt phần mềm Matlab
  • 15. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 7 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 16. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Sau khi tải về, bạn tiến hành giải nén tệp tin với WinRAR phiên bản mới nhất. Với MATLAB 2021, quy trình cài đặt tương tự như MATLAB 2020, bạn tiến hành thực hiện các bước sau đây. Bước 1: Gán File iso MATLABv9.10R2021a_Win64.iso vào ổ đĩa ảo (nhấn chuột phải vào file > Mount (Gán)) Bước 2: Chạy setup.exe > Advanced Options > I have a File Installation Key Bước 3: Nhập Enter File Installation Key 09806-07443-53955-64350-21751-41297 Bước 4:Select License File: license.lic hoặc license_standalone.lic trong thư mục “MATLAB Licenses” đã tải về. Chọn các thành phần bạn cần cài đặt: Select products, bạn cần - 32GB ổ cứng để cài toàn bộ các thành phần. - 3GB nếu chỉ cài “MATLAB” Bước 5: Chọn Add shortcut to desktop để thêm lõi tắt MATLAB ra Desktop. Bước 6: Chờ cho quá trình cài đặt hoàn tất. Bước 7: Sau khi cài đặt thành công, bạn copy file “libmwlmgrimpl.dll” trong “MATLAB Licenses” tới thư mục cài đặt MATLAB binwin64matlab_st artup_pluginslmgrimpl thay thế file cũ để hoàn tất kích hoạt.
  • 17. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 8 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 18. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 PHẦN 2: GIỚI THIỆU VỀ MATLAB VÀ PHẠM VI ỨNG DỤNG
  • 19. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 9 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 20. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 CHƯƠNG 1. GIỚI THIỆU CHUNG VỀ MATLAB I. Giới thiệu về Matlab. 1.1 Khởi động và Giao Diện của Matlab Để khởi động Matlab ta nháy đúp chuột vào biểu tượng của Matlab, trên màn hình sẽ hiện ra cửa sổ giao diện của Matlab Menu Toolbar ( Menu (Thanh Công Cụ) Bar lệnh) Cửa sổ mục chứ a thư hiện thời Command Cửa sổ l ệnh) Window Cửa sổ lư u trữ các lệnh đã thực hiện ( Hình 1: Giao diện Matlap) ✻ Trên cửa sổ giao diện chính có một số menu, toolbar, cũng như một số cửa sổ nhỏ hơn: Menu bar: Chứa các cây thư mục chính, tương tự như một số phần mềm khác chạy trong môi trường Windows, ngoài ra có một số lệnh thực hiện riêng của Matlab. Toolbar (thanh công cụ): chứa các biểu tượng (icon) thực hiện một số chức năng thông thường (Open, New, Save, Cut, Paste...) và riêng biệt (Simulink, Guide, Help...). Cửa sổ lệnh (Command window): đây là cửa sổ quan trọng nhất, có thể cho phép thực hiện ngay các phép toán, hoặc liên kết với các cửa sổ khác. 10
  • 21. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 Một số cửa sổ phụ thực hiện các chức năng riêng (thông báo thư mục hiện thời, thông báo các dòng lệnh đã thực hiện, tên biến đang có,...) ✻ Cửa sổ lệnh: Cửa sổ lệnh là nơi cho phép nhập các lệnh thực hiện từng phép toán, các chương trình con, cũng như kết nối với các module ứng dụng trong Matlab. Trên cửa sổ giao diện chính luôn có dấu nhắc ">>": người sử dụng có thể nhập trực tiếp tên lệnh vào đó, kết thúc gõ Enter ( ) để thực lệnh Nếu 1 câu lệnh dài, để xuống dòng thì sử dụng 3 dấu chấm "..." trước khi gõ Enter. Nếu trước 1 dòng lệnh có ký tự "%" thì dòng lệnh đó chỉ là chú thích, Matlab không thực hiện lệnh trong dòng soạn thảo đó. Khi thực hiện xong 1 lệnh đúng (không có lỗi), Matlab sẽ đưa ngay kết quả của lệnh đó nếu cuối câu lệnh không có dấu ";". Kết quả sẽ được trả lời sau dòng ans. Lệnh clc cho phép xóa toàn bộ các lệnh đã thực hiện trước đó, trả về 1 trang cửa sổ trắng. Lệnh clear all cho phép xóa toàn bộ lưu trữ các biến có trong bộ nhớ hiện thời của máy tính. Gõ help , trên cửa sổ sẽ hiện cho cách thức sử dụng lệnh đó. 1.2 Cách thức sử dụng phần mềm Matlab a. Tính toán trực tiếp Có hai cách thực hiện: Gõ trực tiếp biểu thức hoặc các lệnh vào trong cửa sổ lệnh, kết quả sẽ hiện ra màn hình sau khi ấn Enter. Đưa các câu lệnh, biểu thức vào trong tệp văn bản script file (ghi dưới dạng mã ASCII) tệp này cần có phần mở rộng là.m (nên còn được gọi là m file). khi cần thực hiện việc tính toán ta chỉ cần gọi tệp này vào Matlab. Downloaded by EBOOKBKMT VMTC ([email protected])
  • 22. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 b. Lập trình ứng dụng Chương trình cần được ghi vào trong tệp m.file khi cần chạy chương trình ta gọi vào môi trường Matlab. Để kiểm nghiệm từng dòng lệnh có thể đưa thử trực tiếp trong cửa sổ của Matlab. Để biên tập các tệp chương trình ta có thể dùng một trình biên tập bất kỳ hoặc dùng trực tiếp chương trình Matlab-Editor của Matlab với các tiện ích hỗ trợ cho lập trinh. 1.3. Các thức viết biểu thức, sử dụng biến, các phím chức năng a. Tính toán biểu thức số: Các biểu thức số có thể nhập trực tiếp vào cửa sổ lệnh của Matlab, sau khi ấn Enter kết quả của biểu thức sẽ hiện ra màn hình. Các phép tính: Cộng +, Trừ -, Nhân *, Chia /, Luỹ thừa ^ và dấu ngoặc ưu tiên phép tinh. Các dòng lệnh dài có thể được phân ra nhiều dòng (bằng các ấn Enter),tuy nhiên cuối mỗi dòng (trừ dòng cuối cùng) ta phải thêm dấu... b. Sử dụng các hàm, hằng và biến Các hàm: abs, sqrt, sin, cos, tan, cot, exp, log, log10, asin, acos, atan, acot Các hằng số đã định nghĩa: realmax, eps,realmin, pi, inf Khi viết biểu thức, kết quả tính toán sẽ được lưu trữ vào trong biến có tên mặc định là ans. Thông thường để lưu kết quả tính ta thường dùng phép gán với cú pháp sau: = hoặc = : Trong đó: Tên biến do người dùng đặt, không có khoảng trống và phân biệt chữ cái hoa, thường. ở cú pháp 1: kết quả tính của biểu thức sẽ hiện ra màn hình và lưu trữ dưới tên biến. ở cú pháp 2: kết quả không hiện ra màn hình . Để kiểm tra giá trị hiện thời của biến ta chỉ cần gõ tên biến. Trong biểu thức thay cho việc nhập giá trị cụ thể ta có thể gõ tên biến. Để kiểm tra các biến tồn tại trong môi trường Matlab ta gõ who, hoặc whos, hay dùng menu FileShow Work Space Để xoá biến khỏi mô trường ta có thể dùng các lệnh: clear, clear , ,... c. Các phím chức năng Để biên tập các dòng lệnh ta dùng các phím mũi tên hoặc dùng chức năng cắt dán Phím xoá lùi, phím del, end, pageup, pagedown.. Các phím tắt thông thường khác như ở các phần mềm ứng dụng trong Windows: Ctrl + C; Ctrl + V; Ctrl + N, Ctrl + O, Ctrl + X,... d. Quy định việc hiển thị kết quả số ra màn hình Dùng lệnh format: Các chế độ chính sau đây: FORMAT Chế độ mặc định có ý nghĩa như FORMAT SHORT FORMAT SHORT Ghi chế độ thập phân với 5 chữ số sau dấu phẩy FORMAT LONG Ghi chế độ thập phân với 15 chữ số sau dấu phẩy FORMAT SHORT E Chế độ ghi số e với 5 chữ số thập phân.
  • 23. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 11 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 24. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 FORMAT LONG E Chế độ ghi số e với 15 chữ số thập phân.. FORMAT + Sử dụng dấu +, - ghi trước số II. Thao tác với các tệp trong Matlab 2.1. Các loại tệp được dùng trong Matlab Trong Matlab, ta thường dùng một số loại tệp chính: a. Tệp *.m (m. file): Tệp này có nhiều chức năng: Có thể chứa các biểu thức của Matlab (script file) để gọi vào môi trường của Matlab khi cần thiết Là chương trình ứng dụng dùng ngôn ngữ lập trình của Matlab Là một hàm mới của Matlab do người dùng định nghĩa M. file được lưu trữ dưới mã ASCII b. Tệp *.mat (có phần mở rộng là mat) dùng để ghi lại các biến có trong môi trường làm việc của Matlab.Tệp này được ghi dưới mã nhị phân. c. Một số dạng tệp khác: các dạng tệp đặc biệt, riêng cho các module ứng dụng trong Matlab (VD: *.fig: đồ thị trong Matlab; *.mdl: file mô phỏng trong Simulink...) 2.2. Các lệnh xử lý tệp .mat a.Lệnh Save hoặc File/Save Work Space As Cú pháp: Save('filename'): ghi các biến có trong môi trường làm việc của Matlab vào tệp Save('filename', 'biến 1', 'biến 2',...): ghi các , ,... vào tệp Nếu dùng menu lệnh: File/Save Work Space as máy sẽ cho hiện ra bảng chọn Save as cho phép ta đặt tên tệp, vị trí thư mục sẽ lưu trữ tệp ghi các biến trong môi trường làm việc của Matlab b. Lệnh Load hoặc FileLoad Work Space Lệnh Load('Filename') sẽ tải các biến lưu trữ trong tệp vào môi trường làm việc của Matlab FileLoad Work Space: Sẽ hiện ra hộp thoại Open cho phép ta tìm kiếm và mở tệp để tải các biến lưu trữ trong nó vào môi trường làm việc của Matlab. 2.3. Đường dẫn Thông thường để làm việc với các tệp (ghi hoặc tải các tệp) ta cần chỉ rõ đường dẫn đến tệp cần thao tác. Trong môi trường làm việc của Matlab đã quy định trước một số đường dẫn đến thư mục của Matlab, nếu các tệp đưa ra không có đường dẫn, máy sẽ tự tìm kiếm trong các thư mục này, các thư mục này được gọi là "thư mục mặc định". Để thao tác với các thư mục mặc định của Matlab ta dùng lệnh: path, addpath, rmpath hoặc dùng menu lệnh FileSet Path a. Lệnh path: Cú pháp: path cho hiện ra danh sách các đường dẫn đến thư mục mặc định của Matlab b. Lệnh addpath Cú pháp: addpath('đường dẫn 1', 'đường dẫn 2',...): Thêm các đường dẫn thường trực vào môi trường của Matlab c. Lệnh rmpath Cú pháp rmpath('đường dẫn 1', 'đường dẫn 2'..): Loại bỏ các đường dẫn chỉ định khỏi môi trường của Matlab d. Sử dụng menu lệnh: FileSet Path
  • 25. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 12 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 26. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Lệnh FileSet Path Cho hiện ra hộp thoại thể hiện danh sách các đường dẫn thường trực đồng thời giúp người dùng thực hiện việc thêm vào, bớt đi các đường dẫn thường trực một cách trực quan. *Để thêm vào đường dẫn thường trực ta thực hiện các thao tác sau: Nháy chuột vào Path/ Add to Path, Nháy chuột vào nút... trong hộp thoại vừa mở ra để tìm đến thư mục lựa chọn Nháy vào OK Vào Menu FileSave Path Vào Menu FileExit Browser để thoát khỏi hộp thoại *Để loại bỏ một đường dẫn thường trực ta thực hiện các bước sau: Nháy chuột vào thư mục cần loại bỏ trong danh sách các thư mục mặc định của Matlab Nháy chuột vào PathRemove From path Vào Menu FileExit Browser để thoát khỏi hộp thoại Với các phiên bản Matlab đời cao (từ 6.5 trở lên) thì nếu khi chạy m file từ một thư mục (đường dẫn mới) thì Matlab sẽ hỏi trực tiếp người sử dụng có đưa đường dẫnnày vào hiện thời hay không, do đó giảm bớt công việc đưa đường dẫn vào cụ thể như trên trong mỗi lần sử dụng (khi thoát khỏi Matlab, đường dẫn cũng tự động được xóa khỏi bộ nhớ) 2.4. Các lệnh xử lý m. file Để tạo ra, biên tập và sửa chữa các tệp m. file ta có thể sử dụng bất kỳ một trình biên tập nào có thể tạo ra tệp mã ASCII, tuy nhiên Matlab cung cấp một trình soạn thảo hết sức tiện lợi đó là chương trình Matlab Editor. Để tạo file mới từ cửa sổ của Matlab ta gọi: File/New/M.file, Hoặc nháy vào biểu tượng New trên thanh công cụ Để mở tệp đã có ra để hiệu chỉnh, ta nháy chuột vào biểu tượng Open hoặc chọn File/Open, Máy sẽ hiện ra hộp thoại Open cho ta tìm đến tệp cần mở và gọi Matlab Editor ra để đưa tệp cần mở vào biên tập
  • 27. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 13 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 28. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 CHƯƠNG 2. XỬ LÝ DỮ LIỆU DẠNG MẢNG (MA TRẬN) TRONG MATLAB *Một số khái niệm cơ bản: - Số: là ma trận có kích thước 1x1 (1 hàng, 1 cột) - Véctơ: là ma trận có số hàng, hoặc số cột bằng 1 + Véctơ hàng: ma trận có số hàng bằng 1 + Véctơ cột: ma trận có số cột bằng 1 - Ma trận số (mảng số): là ma trận có kích thước mxn (m hàng, n cột) trong đó các phần tử của ma trận đều là dữ liệu dạng số. - Ma trận khối (mảng khối): là ma trận có các phần tử dạng dữ liệu chuỗi ký tự. I. Các phương pháp tạo mảng dữ liệu 1.1 Phương pháp nhập trực tiếp từ bàn phím Các nguyên tắc chung Các phần tử của mảng được bao trong dấu ngoặc vuông: [ ] Các phần tử trên một hàng được cách nhau bằng dấu cách Các hàng được phân cách bằng dấu ";" hoặc dấu "Enter" Ví dụ: Nếu ta gõ: C=[3.5 4.3 5.0] , ta sẽ nhận được véc tơ hàng có ba phần tử là 3.5, 4.3 và 5.0 và trên màn hình của Matlab sẽ hiện ra: C = 3.5000 4.3000 5.0000 Nếu ta nhập vào: V=[3.5; 4.3; 5.0], hoặc V=[3.5000 4.3000 5.0000] Ta sẽ nhận được véc tơ cột có ba phần tử là 3.5, 4.3 và 5.0 và trên màn hình của Matlab sẽ hiện ra: V = 3.5000 4.3000 5.0000 Câu lệnh: M=[134;537;214] Sẽ cho kết quả ma trận 3 hàng, 3 cột M = 1 3 4 5 3 7 2 1 4 Chú ý: Các phần tử trong mỗi hàng khi nhập vào phải như nhau 1.2 Dùng toán tử " : " Cú pháp: =: : Sẽ tạo ra véc tơ hàng có phần tử đầu tiên là giá trị , gia số giữa các phần tử là , giá trị phần tử cuối cùng không vượt quá Chú ý: Nếu bỏ qua trị số của , máy sẽ nhận gia số =1 Ví dụ: Nếu nhập vào sau dấu nhắc dòng lệnh Y=1:2:10 Ta nhận được véc tơ hàng: Y = 13579 Nếu nhập vào sau dấu nhắc dòng lệnh: Y=1:9 Ta nhận được véc tơ: Y = 123456789 1.3 Dùng hàm linspace và logspace: Cú pháp: =linspace(, , ) Hàm sẽ tạo ra véc tơ hàng có số phần tử bằng , gia số giữa các phần tử như nhau và bằng (MaxVal-MinVal)/(Num-1), phần
  • 29. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 14 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 30. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 tử đầu tiên có giá trị bằng MinVal, phần tử cuối cùng có giá trị bằng MaxVal Ví dụ: Dùng hàm: linspace(1,11,6) Ta nhận được véc tơ ans = 1357911 Ứng dụng: Hàm linspace rất tiện dụng trong việc xác định véc tơ các giá trị trên trục hoành khi vẽ đồ thị Hàm logspace Có cú pháp tương tự như hàm linspace, tuy nhiên các phần tử biến thiên theo quy luật hàm số mũ với gia số của các số mũ tăng đều và bằng: (MaxVal-MinVal)/(Num-1). Ví dụ: logspace(1,6,6) Sẽ cho kết quả: ans = 10 100 1000 10000 100000 1000000 1.4 Sử dụng các mảng chuẩn 1.4.1 Ma trận có các phần tử bằng 0 Ứng dụng: Ma trận có các phần tử bằng 0 thường dùng trong các trường hợp sau: Dùng làm ma trận mồi trong phép tính tổng nhiều ma trận (dùng vòng lặp) Dùng để tạo ma trận có nhiều phần tử bằng 0 rất thường gặp trong kỹ thuật Sử dụng hàm zeros: Cú pháp: =zeros(, ) Tạo ra ma trận với các phần tử 0, có số hàng là , số cột là . Ví dụ: Hàm M=zeros(2,3) Sẽ cho kết quả M = 0 0 0 0 0 0 1.4.2. Ma trận có các phần tử bằng 1 Ứng dụng: Ma trận có các phần tử bằng 1 thường dùng trong các trường hợp sau: Dùng làm ma trận mồi trong phép tính tích các phần tử tương ứng của nhiều ma trận (dùng vòng lặp) Dùng để tạo ma trận có các phần tử bằng nhau (dùng khi thực hiện phép tính cộng hoặc trừ từng phần tử của ma trận với cùng một số). Sử dụng hàm ones: Cú pháp: =ones (, ) Tạo ra ma trận với các phần tử 1, có số hàng là , số cột là . Ví dụ: M=ones(3,4) Sẽ cho kết quả M = 1111 1111 1111 M=3.5*ones(3,2) Sẽ cho kết quả M = 3.5 3.5 3.5 3.5 3.5 3.5 1.4.3. Ma trận đơn vị Để tạo ma trận đơn vị, ta dùng hàm eye; Cú pháp: =eye(, ); hoặc =eye() Cú pháp thứ nhất sẽ tạo ra ma trận đơn vị chữ nhật, có số hàng bằng và số cột bằng . Cú pháp thứ hai sẽ tạo ra ma trận đơn vị có số hàng bằng số cột bằng Ví dụ: I=eye(3,4) Sẽ tạo ra ma trận I = 1000 0100 0010 I=eye(4) Sẽ tạo ra ma trận I = 1000 0100
  • 31. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 15 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 32. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 0010 0001 1.4.4. Tạo các mảng đường chéo ứng dụng Mảng đường chéo thường gặp ở các ma trận độ cứng và ma trận khối lượng trong tính toán bền Dùng hàm diag Cú pháp: =diag(v) =diag(v,n) ở đây: V là một véc tơ hàng, hoặc cột. hoặc có thể là ma trận n là số nguyên chỉ đường chéo nào của ma trận sẽ đặt các phần tử của véc tơ V Nếu V là một véc tơ, hàm sẽ cho kết quả là ma trận vuông có các phần tử trên đường chéo chỉ định là các phần tử của véc tơ V Nếu V là một ma trận, sẽ trả kết quả là véc tơ cột của các phần tử nằm trên đường chéo của ma trận V Nếu không chỉ ra n, các phần tử của V sẽ nằm trên đường chéo chính Ví dụ: V=[1 3 5 3]; M=diag(V) Sẽ cho kết quả M = 1000 0300 0050 0003 M=diag(V,1) Sẽ cho kết quả M = 01000 00300 00050 00003 00000 M=diag(V,-1) Cho kết quả M = 00000 10000 03000 00500 00030 V=[3 4 6;5 6 7;8 9 6]; M=diag(V) Cho kết quả: M = 3 6 6 1.4.5. Mảng các số ngẫu nhiên ứng dụng: Mảng các số ngẫu nhiên dùng nhiều trong đồ hoạ hoặc tạo các nhiễu trong mô phỏng và sử lý số liêụ thực nghiệm Sử dụng lệnh rand: = rand(số hàng, số cột) Tạo ra mảng các số ngẫu nhiên với số hàng, cột chỉ định 1.5 Mảng tạo từ tệp Nếu ta ghi các mảng trong một tệp dạng m.file (theo đúng quy cách tạo mảng trong Matlab như trình bày ở trên), ta hoàn toàn có thể gọi mảng vào môi trường làm việc của Matlab bằng cách nhập tên của m.file sau dấu nhắc của Matlab và ấn Enter. Điều này rất thuận tiện khi ta dữ liệu dạng mảng được xuất ra từ một chương trình tính toán khác. II. Tham chiếu tới các phần tử của mảng, tạo các mảng con 2.1 Nguyên tắc tham chiếu tới các phần tử của mảng Để tham chiếu đến một phần tử của mảng, ta cần chỉ ra chỉ số hàng và cột của phần tử (đặt trong dấu ngoặc đơn) Để tham chiếu đến một nhóm các phần tử của mảng, thay cho việc chỉ ra chính xác chỉ số của phần tử như trên ta phải chỉ ra được mảng các chỉ số của các phần tử cần tham chiếu tới Dấu: để chỉ toàn bộ các chỉ số của hàng và cột Từ khoá end là chỉ số cuối cùng của hàng hoặc cột của mảng Ví dụ: để tham chiếu đến phần tử nằm ở hàng số 2 và cột số 3 của ma trận M ta viết M(2,3) M1= M([1 2],[3 2]) sẽ cho ta một ma trận mới: M1 = M1,3 M2,3 M1,2 M2,2
  • 33. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 16 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 34. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Ví dụ: M1=M(:,1) sẽ cho ra véc tơ bao gồm các phần tử trên cột thứ nhất của ma trận M M1=M(2,:) sẽ cho ra véc tơ bao gồm các phần tử trên hàng thứ hai của ma trận M Ví dụ: M1=M([2 4],[3:end]) Sẽ tạo ra ma trận M1 từ hàng 2 và 4 của ma trận M, mỗi hàng lấy ra từ phần tử thứ 3 đến phần tử cuối cùng 2.2 Các ứng dụng của việc truy cập các phần tử của mảng 2.2.1. Lấy các phần tử của mảng ra để tính toán Ví dụ: S=V(2)^2+V(5)^2 Sẽ tính tổng bình phương các giá trị của phần tử thứ 2 và thứ 5 của véc tơ V S=M(1,2)-M(2,3) Sẽ tìm ra hiệu của hai phần tử ở hàng 1 cột 2 và hàng 2 cột 3 của ma trận M 2.2.2. Thay đổi giá trị của từng phần tử của mảng Ví dụ: Để tạo ra ma trận M =[ 1 0 0 ], 00 3 0 0 0 ta thực hiện theo các bước sau: - Tạo ma trận với các phần tử 0: M=zeros(3,3); - Sau đó gán lại các phần tử khác 0 của ma trận: M(1,1)=1;M(3,2)=3; 2.2.3. Tạo các mảng con từ mảng cơ sở Ví dụ: Để lấy ra hàng đầu tiên của ma trận M ta dùng lệnh: V=M(1,:) Để tạo ra véc tơ mới bằng cách bỏ đi phần tử đầu tiên của véc tơ V, ta dùng lệnh: V1=V(2:end); 2.2.4. Loại bỏ bớt các phần tử của mảng: Để loại bỏ các phần tử khỏi mảng ta chỉ cần gán giá trị của các phần tử cần loại trị số rỗng: "[ ]" Ví dụ: nếu ta có ma trận M= 2 3 4 5 3 7 3 2 8 Sau khi dùng phép gán: M(:,1)=[ ] Ta nhận được: M = 3 4 3 7 2 8 2.2.5. Hợp mảng mới từ các mảng thành phần (nối mảng) Để tạo mảng từ các mảng thành phần ta dùng dấu "[ ]" bên trong cần chỉ rõ các phần tử đưa vào mảng, nếu các phần tử nằm trên 1 hàng, chúng cách nhau bằn dấu cách (bước trống), để xuống dòng ta dùng dấu ; Ví dụ: Nếu ta có 2 véc tơ: V1=[3 5 7 9], V2=[4 6 8 2 7 3] Khi dùng lệnh: V=[V1(2:end) V2([1 3 4])] Ta sẽ nhận được: V = 579482 III. Các phép tính thực hiện trên mảng 3.1 Các phép toán thông thường 3.1.1: Phép cộng Cú pháp: M=M1 + M2 + M3+... Ý nghĩa: tạo ra mảng mới M có cùng kích thước với mảng M1, M2..., các phần tử của mảng mới sẽ bằng tổng từng phần tử tương ứng của các mảng thành phần Điều kiện: Các mảng M1, M2,... phải có cùng kích thước. 3.1.2: Phép trừ Cú pháp: M=M1 - M2 - M3-...
  • 35. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 17 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 36. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 ý + Cộng (không có toán tử.+) - Trừ (không có toán tử.-) .* Nhân từng phần tử ./ Chia từng phần tử .^ Luỹ thừa từng phần tử ' Phép chuyển vị nghĩa: Tạo ra mảng M với các phần tử M(i,j)=M1(i,j)-M2(i,j)-M3(i,j)-.. Điều kiện: Các mảng M1, M2,... phải có cùng kích thước. 3.1.3. Phép nhân Cú pháp: M=A*B ý nghĩa: Nếu A là ma trận có kích thước (i x k) và B là ma trận có kích thước (k x j), ta sẽ nhận được ma trận M có kích thước là (i x j) với: Điều kiện: Số cột của ma trận A phải bằng số hàng của ma trận B. 3.1.4 Phép luỹ thừa Cú pháp: M=A^n, trong đó n là số nguyên dương Có kết quả như là phép nhân n ma trận A với nhau: Điều kiện: Các ma trận A phải là ma trận vuông 3.1.5 Phép chia hai ma trận Cú pháp: M=A/B ý nghĩa: Phép chia ma trận hoàn toàn giống như phép nhân với ma trận nghịch đảo: M=A/B M=A*B-1 Điều kiện: Các ma trận A, B phải là các ma trận vuông cùng kích thước 3.2. Sử dụng các toán tử với dấu "." 3.2.1. Ý nghĩa: Các toán tử có dấu "." (xem bảng dưới ) sẽ cho phép thao thác trên từng phần tử của mảng 3.2.2 Các ví dụ: VD1: Xác định véc tơ S, với các phần tử được lOMoAR cPSD|2935381 xác định bằng quan hệ: S(i)=Y(i+1)-2*Y(i); i=1 đến n-1, với Y =[3.5 6.2 7.0 5.4 6.2] ở đây ta sử dụng biểu thức véc tơ: S=Y(2:end)-2*Y(1:end-1) VD2: tính giá trị của véc tơ V mà các phần tử của nó được xác định bằng biểu thức: V(i)=2*Y(i)-b, với Y =[3.5 6.2 7.0 5.4 6.2], b=1.5 ở đây ta sử dụng biểu thức véc tơ: S=2*Y-b*ones(1,5) VD3: giải hệ phương trình: {4 X 1+7 X3=5 3 X1+5 X2−4 X3= 12 2 X 1+5 X 2+ X3=4 Ta tạo ra các ma trận: M=[4 0 7; 3 5 -4;2 5 1]; Y=[5;12;4] nghiệm của hệ được xác định bằng biểu thức: X=eye(3,3)/M*Y X = 3.0000 -0.2000 1.0000 3.3. Các hàm dùng trên mảng 3.3.1 Các hàm dùng chung: Tất cả các hàm tính toán trên dữ liệu số đều có thể thực hiện trên dữ liệu mảng, và quả là mảng có cùng kích cỡ Ví dụ: Để vẽ đồ thị của hàm số: Y = sin2 ( X ) +2 cos( 2 X ) ; X=0 1+cos2 ( X ) đến Pi Ta sử dụng các lệnh sau: X=linspace(0,pi,20); Y=(sin(X).^2+2*cos(2*X))./ (ones(1,20)+cos(X).^2); plot(X,Y) 3.2 Các hàm dùng cho việc xử lý dữ liệu a. Hàm size cú pháp:
  • 37. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 18 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 38. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 S=size(A): đưa ra véc tơ hàng chỉ số lượng hàng và cột của ma trận [r,c]=size(A) gán số hàng cho r, số cột cho c 4 0 7 Ví dụ: Nếu ta có ma trận M = 3 5 − 4 2 5 1 Nếu gọi lệnh: S=size(M), ta nhận được: S = 3 3 b. Hàm length cú pháp: S=length(V): đưa ra kết quả là 1 giá trị số bằng tổng số phần tử có trong vectơ V c. Hàm min, max Cú pháp: min(A) max(A) Nếu A là một véc tơ, hàm sẽ trả kết quả là giá trị min (max) của các phần tử trong véctơ Nếu A là một ma trận, hàm sẽ trả kết quả là một véc tơ hàng với các phần tử là min (max) của các phần tử trong mỗi cột trong ma trận A d. Hàm sum Cú pháp: sum(A) Nếu A là một véc tơ, hàm sẽ trả kết quả là tổng các phần tử của véc tơ Nếu A là một ma trận, hàm sẽ trả kết quả là một véc tơ hàng với các phần tử là tổng các phần tử của mỗi cột trong ma trận A e. Hàm cumsum Cú pháp: B = cumsum(A) B = cumsum(A,dim) Mô tả: Nếu A là một véc tơ, B = cumsum(A) sẽ đưa ra kết quả là véc tơ B có các phần tử là tổng tích luỹ của các phần tử của véc tơ A: được xác định bằng công thức: Nếu A là một ma trận, cumsum(A) Sẽ đưa ra kết quả là ma trận có cùng kích cỡ với A và các phần tử của nó tương ứng là tổng tích luỹ của các phần tử trên từng cột của ma trận A. B = cumsum(A,dim) Sẽ đưa ra kết quả là ma trận B có cùng kích thước với A, các phần tử của véc tơ B sẽ là tổng tích luỹ của các phần tử dọc theo hàng hoặc cột của ma trận A, tuỳ thuộc vào trị số của . Ví dụ cumsum(A,1) sẽ tính dọc theo các cột, cumsum(A,2) sẽ tính dọc theo các hàng. Thí dụ cumsum(1:5) = [1 3 6 10 15] A=[123;456]; cumsum(A) 1 2 3 5 7 9 cumsum(A,2) 1 3 6 4915 f. Hàm diff Tính toán độ lệch giữa các phần tử trong mảng Cú pháp Y = diff(X) Y = diff(X,n) Mô tả: Y = diff(X) tính ra độ lệch giữa các phần tử kề nhau của véc tơ X. *Nếu X là véc tơ kết quả đưa ra là véc tơ ít hơn X 1 phần tử: [X(2)-X(1) X(3)-X(2)... X(n)-X(n-1)] *Nếu X là ma trận, hàm diff(X) đưa ra kết quả là ma trận cột các độ lệch: [X(2:m,:)-X(1:m-1,:)] Y = diff(X,n) Đưa ra véc tơ độ sai lệch bậc n: như vậy diff(X,2) cho ra cùng kết quả với diff(diff(X)).
  • 39. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 19 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 40. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoAR cPSD|2935381 CHƯƠNG 3. ĐỒ HỌA TRONG MATLAB 3.1. Những vấn đề chung Một đồ thị hoàn chỉnh bao gồm những thành phần sau: - Đường cong biểu diễn mối quan hệ các giá trị - Tên của đồ thị - Các trục toạ độ - Các chú thích khác trên đồ thị Sau đây chúng ta xem xét từng thành phần trong môi trường làm việc của Matlab. 3.2. Đường cong biểu diễn mỗi quan hệ của các giá trị Thông thường chúng ta đã biết các loại đồ thị 2 chiều và 3chiều. Trong bài này chúng ta chỉ nghiên cứu đến loại đồ thị phẳng (2chiều) còn chỉ giới thiệu về đồ thị 3 chiều. 3.2.1. Đồ thị 2 chiều a) Lệnh plot: Cú pháp 1: plot(Y) plot(X,Y) Giải thích: - Nếu Y là một véc tơ, hàm plot(y) sẽ in ra đồ thị Y phụ thuộc vào chỉ số của nó trong véc tơ. - Nếu X, Y là hai véc tơ cùng độ lớn hàm plot(X,Y) sẽ in ra đồ thị hàm Y(X) - Nếu đối số trong hàm bao gồm nhiều bộ X, Y, Hàm sẽ đưa ra được nhiều đồ thị trên màn hình và Matlab sẽ tự động hiển thị các đồ thị với các màu khác nhau. Ví dụ: để vẽ đồ thị hàm Sin với trị số hoành độ từ 0 đến 2 Pi ta dùng các dòng lệnh sau: X=0:Pi/100:2*Pi; Y=Sin(X); plot(X,Y) Cú pháp 2: plot(X1,Y1,X2,Y2,X3,Y3) Giải thích: Cú pháp 2 cho phép vẽ các đường cong Y1(X1), Y2(X2), Y3(X3)... trên cùng 1 hệ trục tọa độ. Yêu cầu: các cặp véc tơ (X1,Y1), (X2,Y2), (X3,Y3)... phải có cùng kích thước. Ví dụ: Vẽ nhiều đường cong trên cùng một hệ trục Nếu ta có: y1= sin(x); y2=sin(x-0.25); y3=sin(x- 0.5) Để có thể so sánh đồ thị pha y1(x), y2(x), y3(x) trên cùng một hệ trục ta cũng dùng lệnh plot Hàm: plot(x, y,x,y2,x,y3) sẽ đưa ra bộ đồ thị như hình vẽ Để làm nổi bật hay để phân biệt các đường cong cho tiện theo dõi hay trình bày, ta cũng có thể chỉ định kiểu đường nét, màu sắc và kiểu đánh dấu các điểm nút Cú pháp 3: plot(x,y,'color_style_marker') - Giải thích: trong lệnh trên, color_style_marker là một bộ qui định màu sắc, kiểu đường và kiểu đánh dấu các điểm nút. Chúng được phân cách trong dấu nháy đơn. - Một số chữ cái qui định kiểu màu: 'c', 'm', 'y', 'r', 'g', 'b', 'w' và 'k'. Chúng tương ứng với các màu xanh da trời, tím đỏ, vàng, đỏ, xanh lá cây, xanh nước biển, trắng và đen. - Các ký tự chỉ kiểu đường bao gồm '-' đối với nét liền, '- -' đối với đường gạnh, ':' đường chấm, '-.' đường chấm gạch, và 'none' khi không vẽ đường. - Các ký tự để đánh dấu điểm bao gồm: '+', 'o', '*', và 'x'. Ví dụ: câu lệnh plot(x,y,'y:+') vẽ ra đồ thị là đường chấm chấm màu vàng có dấu + đanh dấu các điểm nút. Một số chú ý: - Lệnh plot sẽ tự động mở ra một cửa sổ đồ hoạ mới. Nếu cửa sổ này đã tồn tại lệnh plot mặc định sẽ sử dụng cửa sổ này. Để mở một cửa sổ mới và đưa nó thành hiện thời ta dùng lệnh figure. - Để đưa một cửa sổ đã mở thành hiện thời ta dùng câu lệnh figure(n), trong đó n là số trên thanh tiêu đề của cửa sổ.
  • 41. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 20 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 42. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 - Vẽ thêm đường cong mới vào một đồ thị đã có: Lệnh hold cho phép bạn thêm đường cong vào đồ thị đã có. Nếu bạn đặt chế độ hold on Matlab sẽ không xoá đồ thị đã có và vẽ thêm đường cong mới khi gọi lệnh vẽ. Ví dụ: Để vẽ 3 đường cong y1, y2, y3 như ví dụ ở trên ta cũng có thể viết bằng 3 lệnh plot riêng biệt, chỉ cần thêm lệnh hold on: hold on plot(x,y1) plot(x,y2) plot(x,y3) b) Lệnh subplot: Hàm subplot sẽ chia cửa sổ đồ hoạ ra nhiều phần để hiển thị nhiều đồ thị trên cùng một cửa sổ Cú pháp: subplot(m,n,p) Trong đó m,n,p là các số nguyên, sẽ chia cửa sổ đồ hoạ ra m hàng và n cột và đưa phần cửa sổ thứ p thành hiện thời. Chỉ số các cửa sổ con được xác định từ phải qua trái và từ trên xuống dưới. Ví dụ: Để vẽ 3 đường cong y1, y2, y3 ở ví dụ trên nhưng trên 3 đồ thị trong cùng một cửa sổ đồ hoạ, ta thực hiện lệnh subplot subplot(1,3,1) plot(x,y1) subplot(1,3,2) plot(x,y2) subplot(1,3,3) plot(x,y3) 3.2.2. Đồ thị 3 chiều (dạng lưới và bề mặt) a) Các hàm tạo bề mặt Matlab định nghĩa một bề mặt lưới bởi các toạ độ Z trên lưới của mặt xy. Dùng các đường thẳng để nối các điểm kề nhau. Hàm mesh và surf hiển thị các bề mặt ở dạng 3 chiều. Mesh cung cấp các bề mặt dạng khung dây trong đó chỉ thể hiện màu ở các đường nối. Surf hiển thị màu cả đường nối và bề mặt. b) Trực quan hoá các hàm hai biến Để hiển thị hàm 2 biến z=f(x,y), hãy tạo các ma trận x và y chứa đựng các hàng và cột lặp. Sau đó sử dụng các ma trận này để tính ra đồ thị của hàm * Hàm meshgrid chuyển phạm vi được định nghĩa bằng một véc tơ hoặc hai véc tơ x, y thành các ma trận X, Y dùng để tính ra giá trị của hàm. Các hàng của X là các bản sao của véc tơ x, các cột của Y là copy của véc tơ y. Cú pháp: [X,Y] = meshgrid(x,y) [X,Y] = meshgrid(x) [X,Y,Z] = meshgrid(x,y,z) Thí dụ: Hàm [X,Y] = meshgrid(1:3,10:14) Tạo hai mảng x và y sau X = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Y = 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 * Hàm Mesh Cú pháp mesh(X,Y,Z) Ví dụ: [X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z) Trong đó R là khoảng cách từ tâm, eps dùng để tránh việc chia cho 0 ở điểm 0,0 3.2. Tên của đồ thị Một đồ thị hoàn chỉnh bao giờ cũng phải có tên của đồ thị. Ta dùng hàm title Cú pháp: title('String')
  • 43. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 21 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 44. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 title(…,'PropertyName',PropertyValue,…) Giải thích: - 'string': Là tên của đồ thị mà chúng ta cần (Nhập từ bàn phím) - 'PropertyName': Tên của thuộc tính - PropertyValue: Giá trị của thuộc tính Tên và giá trị của thuộc tính sẽ được giới thiệu ở phần sau.(3.5) 3.3. Các trục toạ độ 3.3.1. Điều khiển các trục toạ độ Sử dụng hàm axis: Cú pháp; axis square: Tạo cho toàn bộ trục x và y có cùng chiều dài axis equal: tạo ra các khoảng chia trên trục x và y có chiều dài như nhau axis auto: trả lại chế độ mặc định axis on: Viết ra tên của trục và đánh dấu các điểm chia trên trục axis off: Huỷ bỏ việc viết ra tên của trục và đánh dấu các điểm chia trên trục Bật/tắt các đường lưới trên đồ thị Cú pháp: grid on: Vẽ ra các đường lưới grid off: Không vẽ các đường lưới grid: Chuyển chế độ bật hoặc tắt 3.3.2. Các chú thích trên trục toạ độ Các hàm để viết chú thích trên trục toạ độ xlabel, ylabel, zlabel Cú pháp: xlabel('string') xlabel(...,'PropertyName',PropertyValue,...) Giải thích: Mỗi trục của đồ thị đều có thể có nhãn riêng được tạo bằng các lệnh xlabel, ylabel, zlabel. - xlabel('string'): Tên của trục x là chuỗi ký tự trong 'string' - 'PropertyName': Tên của thuộc tính - PropertyValue: Giá trị của thuộc tính Tên và giá trị của thuộc tính sẽ được giới thiệu ở phần sau.(3.5) Tương tự như vậy với các hàm ylabel và zlabel. 3.4. Các chú thích khác trên đồ thị Hàm để viết chú thích tại điểm bất kỳ text Cú pháp: text(x,y,'string') text(x,y,z,'string') text(...,'PropertyName',PropertyValu e,...) Giải thích: Trong lệnh text ở trên: x,y, z là tọa độ vị trí ghi dòng chú thích - string: Tên của dòng chú thích là chuỗi ký tự trong 'string' - 'PropertyName': Tên của thuộc tính - PropertyValue: Giá trị của thuộc tính Tên và giá trị của thuộc tính sẽ được giới thiệu ở phần sau.(3.5) 3.5. Các thuộc tính của văn bản đồ hoạ Để quy định vị trí, cách căn chỉnh, kích cỡ và kiểu font chữ của văn bản đồ hoạ đưa ra bởi các lệnh xlabel, ylabel, zlabel, text, title..., chúng ta có thể gán thuộc tính cho các dòng văn bản đó ở dạng: (...., 'Property Name',...). ở đây: - là các câu lệnh viết chữ của Matlab (xlabel, text, title...) - 'Property Name' là tên thuộc tính (cần đặt bên trong dấu ' ') - là giá trị của thuộc tính có thể là chuỗi hoặc số nguyên, số thực... 3.5.1. Các thuộc tính của văn bản 3.5.2. Các ký tự đặc biệt
  • 45. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 22 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 46. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Trong các chuỗi của đối số của các hàm viết chữ trong chế độ đồ hoạ ta có thể đưa vào các ký tự điều khiển để xuất ra các chữ cái hy lạp, ký hiệu toán học, và kiểu font. Các mã điều khiển được đặt sau dấu '' Chúng ta có thể điều khiển trực tiếp kiểu font chữ bằng các ký tự điều khiển:fontname 3.5.4. Các tuỳ chọn của lệnh plot Trong lệnh plot ta có thể đưa vào các tuỳ chọn ở dạng: plot(...,'PropertyName',PropertyValue,...) Trong đó 'PropertyName' là tên các thuộc tính, PropertyValue là giá trị của thuộc tính mà ta muốn gán: Dưới đây là bảng liệt kê các thuộc tính của đồ Trong trường hợp này tên font chữ sẽ phải đặt trong dấu {}. kế tiếp phần điều khiển font chữ, chúng ta có thể thêm các mã điều khiển: bf - kiểu chữ đậm it - kiểu chữ nghiêng sl - oblique font rm - kiểu chữ bình thường fontsize{fontsize} - Định nghĩa cỡ chữ. Các chỉ số trên và dưới được định nghĩa bằng các ký tự điều khiển "_" và "^" 3.5.3. Một số ví dụ Ví dụ 1: Vẽ đồ thị của hàm số y=sin(x). t = -pi:pi/100:pi; y = sin(t); thị: Tên thuộc ý nghĩa tính 'LineWidt điều khiển bề dầy h' của nét vẽ đồ thị Điều khiển màu 'MarkerE của nét vẽ biểu dgeColor' tượng đánh dấu điểm 'MarkerSi Kích thước của biểu tượng đánh ze' dấu điểm 'MarkerFa Điều khiển màu ceColor' của biểu tượng đánh dấu điểm kiểu giá trị số nguyên các ký tự chỉ màu ví dụ:'g','y'... số nguyên các ký tự chỉ màu ví dụ:'g','y'... plot(t,y) axis([-pi pi -1 1]) xlabel('-pi leq itt leq pi') ylabel('sin(t)') title('Graph of the sine function') text(1,-1/3,'it{Note the odd symmetry.}') Đưa ra đồ thị như hình vẽ: 3.6. Một số lệnh viết chữ khác 3.6.1 Lệnh gtext Cú pháp: gtext('string') Mô tả gtext sẽ hiển thị chuỗi văn bản tại vị trí chỉ định bằng chuột trên đồ thị 3.6.2: Lệnh ginput Nhập dữ liệu của các điểm bằng chuột Cú pháp [x,y] = ginput(n) [x,y] = ginput Giải thích: [x,y] = ginput(n) Cho phép bạn chọn n điểm bằng chuột và trả kết quả là toạ độ x và y của các điểm chọn cho các véc tơ x và y. Có thể kết thúc việc chọn điểm ngay cả khi chưa nhập đủ n điểm bằng cách ấn Enter
  • 47. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 23 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 48. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 [x,y] = ginput Cho phép chọn số điểm không hạn chế. 3.7. In ấn đồ thị Tuỳ chọn Print của menu FILE và lệnh print đều dùng để in đồ thị. Tuỳ chọn Print sẽ gọi ra hộp thoại cho phép người dùng chọn các tuỳ chọn về in ấn giống như ở các phần mềm khác, còn lệnh print cung cấp chúng ta các khả năng mềm dẻo hơn và cho phép điều khiển việc in đồ thị từ m. file. Kết quả có thể gửi trực tiếp ra máy in hoặc được xếp xắp trong một tệp xác định. Các định dạng đầu ra hết sức khác nhau được cung cấp ở đây (kể cả PostScript) Thí dụ: câu lệnh sau đây ghi hình ảnh của màn hình đồ hoạ ra tệp Postscript cấp 2 có tên là magicsquare.eps: print -depsc2 magicsquare.eps Một điều hết sức quan trọng là cần phải biết trước khả năng của máy in trước khi dùng lệnh print. Ví dụ như tệp Postscript cấp 2 thường là gọn hơn và tô bóng nhanh hơn khi in so với tệp Postscript cấp 1. Tuy nhiên không phải tất cả các máy in đều có khả năng làm việc với tệp Postscript cấp 2 CHƯƠNG 4. LẬP TRÌNH ỨNG DỤNG TRONG MATLAB I. Các loại dữ liệu dùng trong Matlab - Matlab sử dụng các chế độ ghi dữ liệu số 1. Dữ liệu số: thập phân thông thường.
  • 49. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 24 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 50. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 - Có kiểu ghi dùng chữ cái e để xác định số mũ cơ số 10. Ví dụ: 1.60210e-20 =1.60210* 1020 - Các số được lưu trữ trong bộ nhớ có giới hạn là 16 chữ số sau dấu phẩy và giá trị giới hạn nằm trong khoảng −10308 đến 10308 . Một số hằng số thường dùng trong Matlab pi = 3.14169265 i,j = các đơn vị của số ảo esp = độ chính xác tương đối của số thực, 2−52 Inf = Vô cùng lớn NaN = Không phải là số 2. Các phép tính trên số phức 2.1 Nhập dữ liệu Số phức được nhập ở dạng Phần thực + phần ảo i Ví dụ: x= 2+3i 2.2 các phép tính thực hiện trên số phức - Phép cộng: Sử dụng toán tử +, - Phép trừ: Sử dụng toán tử -, - Phép nhân: Sử dụng toán tử *, - Phép chia: Sử dụng toán tử / Ví dụ: Nếu X= 3 +4i, Y=5+6i, ta sẽ có: X+Y ans =8.0000 +10.0000i X*Y ans =-9.0000 +38.0000i X-Y ans =-2.0000 - 2.0000i X/Y ans =0.6393 + 0.0328i 2.3 Các hàm xử lý số phức a. Hàm real Lấy ra giá trị phần thực của số phức Ví dụ: Nếu ta có X=3 +4i, real(X) sẽ cho giá trị 3 b. Hàm imag Lấy ra phần ảo của số phức Ví dụ: với X lấy giá trị như trên, imag(X) sẽ cho giá trị 4 c. Hàm conj Tìm số phức liên hợp của số phức đã cho Ví dụ: với X lấy giá trị như trên, conj(X) sẽ cho giá trị 3-4i 3. Dữ liệu dạng chuỗi 3.1. Phép gán và tham chiếu đến dữ liệu dạng chuỗi * Phép gán: ='chuỗi' * Tham chiếu đến dữ liệu dạng chuỗi Chuỗi là một véc tơ hàng có số phần tử bằng số chữ cái trong chuỗi để tham chiếu đến từng chữ cái ta chỉ cần gọi phần tử tương ứng của chuỗi Các ví dụ: nếu gán x='String Mat' Khi gọi x(1), ta nhận được ans = S nếu gọi x(1:6), ta sẽ nhận được ans = String 3.2. Tạo các mảng với phần tử là chuỗi 3.2.1 Tạo véc tơ cột các chuỗi: * Nhập trực tiếp: nhập theo nguyên tắc giống mảng với các phần tử là số, tuy nhiên yêu cầu các chuỗi có chiều dài như nhau, trong trường hợp các chuỗi có chiều dài khác nhau, ta phải thêm bước trống vào cuối chuỗi. Ví dụ: x=['first ' 'second' 'third '] x = first second third * Dùng hàm: char Cú pháp: char('chuỗi 1', 'chuỗi 2',....) Chú ý: hàm char sẽ chèn cả các chuỗi rỗng vào mảng Ví dụ: x=char('first','second', '', 'third') sẽ cho kết quả là véc tơ cột có 4 phần tử x = first second third 3.2.2 Tạo mảng hoặc véc tơ hàng các chuỗi
  • 51. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 25 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 52. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Dùng mảng khối: -Mảng khối được nhập như mảng thông thường, chỉ khác là mảng được bao bằng dấu { } Các phần tử của mảng khối sẽ là các chuỗi ví dụ: x={'first' 'second' 'third'} x = 'first' 'second' 'third' Nếu gọi: x(1), ta nhận được ans = 'first' 3.3. Các hàm dùng trên chuỗi 3.3.1 Hàm chuyển đổi từ dữ liệu số sang chuỗi và ngược lại a. Chuyển từ số sang chuỗi: Các hàm int2str, num2str, mat2str * Hàm int2str: chuyển số nguyên sang chuỗi. Cú pháp: str = int2str(N) Mô tả: str = int2str(N) Chuyển số nguyên sang chuỗi với định dạng của số nguyên. N có thể là một số nguyên riêng lẻ hoặc mảng các số nguyên. Các giá trị thực sẽ được làm tròn trước khi chuyển đổi. Thí dụ: int2str(2+3) là chuỗi '5'. int2str(3.5) =4 * Hàm num2str Chuyển đổi từ số thực sang chuỗi Cú pháp str = num2str(A) str = num2str(A,precision) str = num2str(A,format) Mô tả Hàm num2str chuyển đổi các số thực sang chuỗi. Hàm này được dùng nhiều khi cần đưa vào đồ thị các nhãn hoặc tiêu đề bằng các giá trị số thực. str = num2str(a) chuyển đổi mảng A thành chuỗi str với 4 chữ số sau dấu phảy và số mũ nếu cần thiết. str = num2str(a,precision) chuyển đổi mảng A thành chuỗi str với độ chính xác được quy định bằng 'precision'. đối số precision quy định số chữ số sau dấu phảy, mặc định là 4. str = num2str(A,format) chuyển đổi mảng A sử dụng định dạng quy định bằng 'format'. (xem lệnh fprint). num2str(pi) là 3.142. num2str([1/3 3/6]) là 0.33333 0.5 num2str(3/7,5) cho kết quả là: 0.42857 * Hàm mat2str Cú pháp: str = mat2str(A) str = mat2str(A,n) Mô tả str = mat2str(A) Chuyển ma trận A thành chuỗi, phù hợp với dữ liệu đầu vào của hàm eval, sử dụng độ chính xác cao nhất. str = mat2str(A,n) Chuyển đổi ma trận A thành chuỗi với n chữ số sau dấu phảy. Chú ý: Hàm mat2str chỉ được thực hiện trên các giá trị số, véc tơ hoặc mảng chữ nhật. Thí dụ: Xét ma trận: A = 1 2 3 4 Câu lệnh b = mat2str(A) cho kết quả: b = [1 2 ;3 4 ] b. Chuyển từ chuỗi sang số, thực hiện các phép tính: hàm eval Cú pháp: eval('Chuỗi') [a1,a2,a3,...] = eval('Chuỗi') Mô tả: eval('Chuỗi') thực hiện biểu thức được mô tả trong 'chuỗi'. Bạn có thể tạo ra 'chuỗi' bằng cách nối kết các chuỗi con và các biến trong ngoặc vuông.
  • 53. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 26 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 54. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 [a1,a2,a3,...] = eval('Chuỗi') thực thi biểu thức trong 'chuỗi' và đưa ra các kết quả trong các biến đầu ra chỉ định. Thí dụ: y=eval('5+6-7'), cho kết quả y =4 Nếu ta có x='5+6-sin(pi)', hàm y=eval(x) sẽ cho kết quả: y =11 eval(['sin(pi/2)' '+' 'cos(pi)']), cho kết quả là 0 c. Hàm sprintf Cú pháp: s = sprintf(format,A,...) Mô tả: s = sprintf(format,A,...) Định dạng các dữ liệu trong ma trận A, trên cơ sở của chuỗi quy định mẫu định dạng 'format' và trả kết quả cho biến dạng chuỗi s. Câu lệnh sprintf cũng có ý nghĩa tương tự như fprint, điểm khác chỉ ở chỗ câu lệnh fprint thường dùng để xuất dữ liệu ra tệp. Chuỗi format quy định các ghi chú, căn chỉnh, số chữ số, bề rộng của trường. Nó có thể chứa các dữ liệu số, chữ và các ký tự điều khiển theo cấu trúc sau: Bảng dưới đây sẽ mô tả các ký tự không nhìn thấy được sử dụng trong định dạng của lệnh sprintf. Các ký tự thoát ký tự Mô tả b Xoá lùi f Kéo giấy n Xuống dòng t lùi vào một bước tab Backslash '' dấu " %% dấu % Các quy định chuyển đổi ký tự điều Mô tả khiển %c Ký tự riêng lẻ %d chế độ ghi số thập phân dùng dấu chấm động %e ghi bằng số e (sử dụng e) %E ghi bằng số e (sử dụng E) %f Cho phép quy định số chữ số xuất ra Chế độ ghi ngắn gọn %e, %f, Các chữ %g số 0 phía sau không được in ra %G Giống %g, nhưng sử dụng E thay cho e %s Ghi chuỗi ký tự Các ký tự khác Các ký tự khác có thể chèn vào mã quy định ở vị trí giữa % và ký tự điều khiển. Ký tự Mô tả Thí dụ Dấu Left-justifies the converted %-5.2d (-) argument in its field. Dấu Luôn in dấu (+ hoặc -) trước %+5.2d (+) số xuất ra. Số Đưa vào các số 0 thay cho %05.2d (0) các khoảng trống. Số Quy định số lượng chữ số ít nguy %6f nhất được in ra. ên Số với Số với dấu. xác định số dấu lượng chữ số được in sang %6.2f chấm phải dấu chấm phân cách. động) Thí dụ Lệnh Kết quả sprintf('%0.5g', 1.618 (1+sqrt(5))/2) sprintf('%0.5g',1/eps) 4.5036e+15 sprintf('%15.5f',1/eps) 4503599627370496.00000 sprintf('%d',round(pi)) 3 sprintf('%s','hello') hello sprintf('The array is The array is 2x3 %dx%d.',2,3) sprintf('n') Xuống dòng d. Hàm sscanf Đọc chuỗi theo định dạng quy định, hàm có ý nghĩa như là hàm ngược của sprintf. Cú pháp A = sscanf(s,format) A = sscanf(s,format,size) Mô tả
  • 55. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 A = sscanf(s,format) Đọc dữ liệu từ chuỗi s, chuyển đổi nó phù hợp với định dạng được quy 27 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 56. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 định trong format và trả ra kết quả cho ma trận a. A = sscanf(s,format,size) Đọc số phần tử quy định trong size và chuyển đổi nó phù hợp với định dạng quy định trong format. size có thể lấy các giá trị sau: n Đọc n phần tử và trả véc tơ cột inf Đọc đến cuối tệp và trả kết quả ra véc tơ cột. [m,n] Đọc đủ số phần tử để điền vào ma trân m x n phần tử. Nếu ma trận A là kết quả chỉ của việc sử dụng các ma trận chuyển đổi, và size không ở dạng [M,N], véc tơ hàng sẽ được trả. Thí dụ: Các câu lệnh s = '2.7183 3.1416'; A = sscanf(s,'%f') Tạo ra véc tơ cột có hai phần tử chứa giá trị của pi và e. II. Nhập, xuất dữ liệu 1. Các lệnh nhập dữ liệu 1.1. Nhập từ bàn phím: Lệnh input Cú pháp: =input('lời nhắc') =input('lời nhắc', 's') Mô tả: =input('lời nhắc') Sẽ hiển thị lời nhắc và chờ người dùng nhập dữ liệu, các dữ liệu này sẽ được gán cho . =Input('lời nhắc', 's') thường dùng khi nhập chuỗi: nếu dùng cú pháp thứ nhất để nhập chuỗi thì ta cần đặt chuỗi trong dấu ' ', còn ở cú pháp 2 ta có thể nhập trực tiếp nội dung của chuỗi. Chú ý: Nếu ta ấn enter khi xuất hiện lời nhắc, Matlab sẽ trả kết quả là ma trận rỗng. 1.2. Nhập từ hộp thoại: Lệnh inputdlg Cú pháp: answer = inputdlg(prompt) answer = inputdlg(prompt,title) answer = inputdlg(prompt,title,lineNo) answer = inputdlg(prompt,title,lineNo,defAns) Mô tả: Prompt: là các dòng nhắc trên các trường dữ liệu, được nhập ở dạng mảng khối các chuỗi lời nhắc Title: là tiêu đề của hộp thoại, nhập vào ở dạng chuỗi LineNo: là số nguyên quy định số dòng cho mỗi trường nhập dữ liệu DefAns: là một mảng khối các chuỗi gán giá trị mặc định Các dữ liệu nhập vào được gán cho answer dưới dạng mảng khối các chuỗi Ví dụ prompt = {'Nhập số hàng ma trận:','Nhập số cột ma trận'}; title = 'Hộp thoại nhập ma trận'; lines= 1; def = {'20','20'}; answer = inputdlg(prompt,title,lines,def); Sẽ đưa ra hộp thoại: Nếu nhập ở hai hộp các giá trị 40 và 30, sau đó nháy OK, ta nhận được: answer={'20' '30'} Chú ý:
  • 57. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 28 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 58. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 Kết quả nhập vào được gán cho biến ở dạng mảng khối các chuỗi, chính vì vậy để có thể sử dụng được các giá trị này ta phải dùng hàm char để chuyển đổi về mảng thông thường, sau đó dùng các hàm sscanf hoặc eval để chuyển dữ liệu về dạng số. 1.3. Nhập dữ liệu từ tệp: Lệnh fread Cú pháp: [A,count] = fread(fid,size,precision Dữ liệu đọc được sẽ ghi vào mảng A, count sẽ ghi lại số phần tử được đọc Fid là chỉ số của tệp được mở lấy ra từ lệnh fopen Size: định dạng số phần tử được lấy ra. Có các loại định dạng sau: - n: Đọc n phần tử và ghi ra ở dạng véc tơ cột. - inf: Đọc đến cuối mảng, các phần tử đưa vào ma trận cột. - [m,n]:Đọc đủ số phần tử để điền vào ma trận m x n, các phần tử điền vào theo trật tự các cột, nếu không đủ số phần tử điền, máy thêm vào phần tử 0. Preciscion: Dạng của phần tử 'char' Character; 8 bits 'schar' Signed character; 8 bits 'uchar' Unsigned character; 8 bits 'int8' Integer; 8 bits 'int16' Integer; 16 bits 'int32' Integer; 32 bits 'int64' Integer; 64 bits 'uint8' Unsigned integer; 8 bits 'uint16' Unsigned integer; 16 bits 'uint32' Unsigned integer; 32 bits 1.4. Lệnh fopen: Mở tệp để ghi hoặc đọc dữ liệu Cú pháp: fid = fopen('filename','permission') Permission: quy định chế độ mở, có thể lấy các giá trị: 'r': mở ra để đọc 'w': mở ra để ghi, nếu tệp đã có, nó sẽ xoá toàn bộ nội dung tệp và ghi lại 'a': mở ra để ghi thêm Filename: là tên của tệp sẽ mở được đặt trong dấu ' ' Kết quả sẽ trả ra chỉ số của tệp được mở (con trỏ tham chiếu đến tệp) và gán cho biến fid. 1.5 Lệnh đóng tệp, fclose Cú pháp: status = fclose(fid), đóng tệp chỉ định status = fclose('all'), đóng tất cả các tệp đang mở 1.6 Lệnh fscanf: Nhập dữ liệu từ tệp định dạng mã ascci Cú pháp: A = fscanf(fid,format) [A,count] = fscanf(fid,format,size) ở cú pháp thứ nhất, fscanf sẽ đọc dữ liệu từ tệp có con trỏ fid theo định dạng quy định bằng chuỗi format. Số phần tử được đọc thành công sẽ được trả cho biến count Ví dụ: Ta có tệp dữ liệu có tên là 'd:datadl.dat' có các số liệu sau: 1.345 4.123 4.567 2.456 2.675 6.876 4.576 3.456 Đoạn chương trình sau sẽ đọc dữ liệu từ tệp xếp thành ma trận (4,2) và gán cho biến M f=fopen('d:datadl.dat','r'); M=fscanf(f,'%f',[4,2]); fclose(f); 2. Các lệnh xuất dữ liệu 2.1. lệnh disp: Hiển thị văn bản hoặc mảng cú pháp: disp(A) Mô tả disp(X) Hiển thị giá trị các mảng mà không đưa ra tên mảng, nếu x chứa chuỗi, chuỗi sẽ được in ra màn hình. 2.2. Lệnh fprintf: Ghi lại dữ liệu Cú pháp:
  • 59. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 29 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 60. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 count = fprintf(fid,format,A,...) fprintf(format,A,...) Mô tả: count = fprintf(fid,format,A,...) định dạng các dữ liệu ở phần thực của ma trận A dưới sự điều khiển của chuỗi định dạng 'format' và ghi vào tệp tham chiếu bằng con trỏ 'fid'. Hàm fprintf trả số lượng byte được ghi ra. fid là chỉ số của tệp được mở ra để ghi dữ liệu, nhận được từ lệnh fopen. Nếu bỏ qua fid, kết quả sẽ in ra màn hình. format là chuỗi quy định định dạng sẽ xuất ra (xem lệnh sprintf) 2.3. Lệnh fwrite: Ghi dữ liệu ra tệp ở dạng mã nhị phân. Cú pháp: count = fwrite(fid,A,precision) Mô tả: count = fwrite(fid,A,precision) ghi các phần tử của ma trận A vào tệp tham chiếu bởi 'fid'. Chuyển đổi các giá trị của MATLAB với độ chính xác được quy định trong 'precision'. Dữ liệu được ghi theo trật tự cột, count sẽ đếm số phần tử được ghi thành công vào tệp. đối số 'fid' là con trỏ tệp nhận được từ lệnh fopen. III. Các lệnh phân nhánh 1. Lệnh if 1.1 Cú pháp: Lệnh If Cú pháp 1: if Biểu thức lôgíc Các biểu thức tính; end Cú pháp 2: if Biểu thức lôgíc Các biểu thức tính 1 else Các biểu thức tính 2 end Cú pháp 3: if Biểu thức lôgíc 1 Các biểu thức tính 1 elseif Biểu thức lôgíc 2 Các biểu thức tính 2 else Các biểu thức tính 3 end Trong các cú pháp đưa ra ở trên: - Các biểu thức lô gíc viết theo quy tắc được trình bày ở dưới đây - Các biểu thức tính chứa các dòng lệnh của Matlab Trong cú pháp 1: Máy sẽ kiểm tra biểu thức logic: nếu biểu thức lôgic đúng, máy sẽ thực hiện các lệnh trong if (nằm giữa if và end), còn nếu biểu thức lô gíc sai máy sẽ bỏ qua các câu lệnh trong if và thực hiện các câu lệnh kế tiếp câu lệnh if Trong cú pháp 2: nếu biểu thức lôgic đúng máy sẽ thực hiện các câu lệnh trong Các biểu thức tính 1, còn nếu biểu thức lôgic sai máy sẽ thực hiện các câu lệnh Các biểu thức tính 2. Trong cú pháp 3: Nếu biểu thức lôgíc 1 đúng, máy sẽ thực hiện Các biểu thức tính 1. Nếu biểu thức lôgíc 1 sai, máy sẽ kiểm tra biểu thức lôgíc 2: nếu biểu thức lôgic này đúng, máy sẽ thực hiện các biểu thức tính 2, còn các trường hợp khác máy sẽ thực hiện các biểu thức tính 3. 1.2 Các toán tử logic Mat lab cho phép sử dụng các toán tử lôgic sau: S Toán T ý nghĩa thí dụ T tử kiểm tra liệu hai biểu 1 = = thức có bằng nhau A=B không 2 > Lớn hơn A>B 3 < Nhỏ hơn A= Lớn hơn hoặc bằng A>=B 6 ~= Khác A~=B
  • 61. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 30 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 62. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 7 & Và lôgic A&B 8 | Hoặc lôgic A|B 9 Not Phủ định Not(A) 1.3 Các hàm logíc Kiểm tra liệu mảng X có rỗng không, cho giá trị đúng (1) khi X rỗng nguợc lại cho kết quả sai (0) b. Hàm isequal(a,b...) k = isequal(A,B,...) sẽ trả giá trị đúng lôgic(1), nếu các mảng đối số có cùng dạng, cùng kích cỡ và có cùng nội dung. Hàm này thường dùng khi so sánh hai hay nhiều mảng, nó sẽ không gây lỗi khi 2 mảng có kích thước khác nhau. c. Hàm ischar(x) Cho kết quả đúng nếu x là dữ liệu dạng chuỗi. d. Các hàm strcmp(s1,s2), strcmp(s1, s2, n) Hàm strcmp(s1,s2) so sánh hai chuỗi s1, s2. Nếu hai chuỗi giống nhau sẽ trả kết quả đúng Hàm strcmp(s1,s2,n) cho kết quả đúng nếu n ký tự đầu tiên của hai chuỗi như nhau. Chú ý: Trong trường hợp đối số trong các hàm lôgic là ma trận, máy sẽ thử từng cặp phần tử trong ma trận, nếu đúng trả giá trị 1, nếu sai trả giá trị 0 và kết quả nhận được là ma trận các giá trị 1 và 0. Để so sánh được hai ma trận phải có cùng kích thước. 2. Lệnh switch Cú pháp: switch Biểu thức switch case Biểu thức case 1 Các biểu thức tính 1 case Biểu thức case 2 Các biểu thức tính 2 ... otherwise Các biểu thức tính khác end Khi lệnh switch được gọi, nó sẽ tính toán giá trị biểu thức switch Sau đó giá trị của biểu thức này sẽ được so với mỗi một biểu thức case theo trình tự được ghi trong câu lệnh, nếu 2 phép so sánh đưa ra kết quả đúng, nhóm các câu lệnh tương ứng sẽ được thực hiện, sau đó thoát khỏi lệnh và thực hiện các câu lệnh sau switch. Nếu tất cả các biểu thức case đều không phù hợp với giá trị của biểu thức switch. Nhóm lệnh dưới otherwise sẽ được thực hiện. IV. Các vòng lặp 1. Vòng lặp xác định: for Cú pháp: for = mảng Các biểu thức tính; end Vòng lặp for sẽ thực hiện các câu lệnh lặp với số lần bằng số cột của mảng, trong mỗi lần lặp sẽ mang giá trị là một véc tơ hàng tương ứng của mảng Thí dụ: Tạo mảng có các phần tử a(i,j)=1/(i+j- 1) a = zeros(n,n) % Preallocate matrix for i = 1:n for j = 1:n a(i,j) = 1/(i+j -1); end end 2. Vòng lặp không xác định: while Cú pháp: while Các biểu thức tính end Khi thực hiện câu lệnh, máy sẽ kiểm tra biểu thức lôgíc, nếu giá trị biểu thức là đúng, các câu lệnh trong vòng lặp sẽ được thực hiện, sau khi thực hiện xong sẽ quay trở về kiểm tra lại giá trị của biểu thức logic. Nếu giá trị của biểu thức lô gíc là sai, vòng lặp sẽ kết thúc. Thí dụ: Tìm nghiệm của phương trình x3 - 2x - 5 = 0 trong khoảng [0,3] theo phương pháp dây cung. 3. Lệnh break: Thoát khỏi vòng lặp một cách cưỡng bức Cú pháp:
  • 63. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 31 Downloaded by EBOOKBKMT VMTC ([email protected])
  • 64. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 lOMoARcPSD|293 538 1 break Mô tả: break Dừng việc thực thi vòng lặp for hoặc while. Khi có nhiều vòng lặp lồng vào nhau, break sẽ chỉ thoát khỏi vòng lặp gần nhất. V. Các chương trình con 1.Phương pháp xây dựng các hàm và chương trình con - Hàm được viết trong m file, tên của m file được bắt đầu bằng ký tự chữ hoặc số và có phần mở rộng là.m. - Dòng trên cùng của hàm m file phải chứa từ khoá function và viết theo đúng quy cách quy định trong Matlab.function [biến ra1, biến ra 2...] = (biến vào 1, biến vào 2..) - Tên của m file phải trùng với . Ví dụ: tệp stat.m chứa nội dung sau tính ra độ lệch chuẩn của véc tơ x = [x1 x2... xn] function [mean,stdev] = stat(x) n = length(x); mean = sum(x)/n; stdev = sqrt(sum((x-mean).^2/n)); Chúng ta có thể định nghĩa một hàm con trong hàm khác bằng cách gọi ra từ khoá function bên dưới thân của hàm chính. Ví dụ dưới đây sẽ định nghĩa hàm con avg bên trong tệp stat.m: function [mean,stdev] = stat(x) n = length(x); mean = avg(x,n); stdev = sqrt(sum((x- avg(x,n)).^2)/n); function mean = avg(x,n) mean = sum(x)/n; Khi Matlab không nhận ra một tên hàm, nó sẽ tìm kiếm tên tệp trùng với tên hàm, nếu tìm ra nó sẽ dịch và đưa vào bộ nhớ. Trong trường hợp tổng quát nếu ta nhập một tên vào Matlab, nó sẽ kiểm tra theo trình tự sau: 1. Kiểm tra xem đó có phải là tên biến 2. Kiểm tra xem đó có phải là tên hàm nội trú trong Matlab. 3. Kiểm tra xem đó có phải là hàm m. file Khi gọi một m.file từ dòng nhắc hoặc trong m.file khác đưa hàm vào bộ nhớ, và nó sẽ lưu lại ở đó cho tới khi ta thoát khỏi Matlab hoặc dùng lệnh clear. 2. Các đối số vào, ra Chú ý - Hàm m-file có thể không chứa đối số nào - Hàm có thể được gọi với số đối số ra hoặc vào ít hơn số đối số được khai báo trong hàm - Khi hàm được gọi ra các biến sử dụng trong hàm chỉ tồn tại tạm thời trong vùng bộ nhớ dành cho hàm - Hàm trong Matlab có thể chứa không hạn chế thông số đầu vào, khi đó biến đầu vào cuối cùng của hàm phải được khai báo là varargin, khi đó biến đầu vào được coi như một mảng khối có vô số phần tử. Tương tự hàm cũng có thể chứa vô hạn các thông số ra khi ta khai báo bằng varargout. - Câu lệnh varagin và varagout Cho phép định nghĩa vô số biến vào và ra của hàm trong Matlab Cú pháp: function varargout = foo(n) y = function bar(varargin) Mô tả: Hàm varargout = foo(n) sẽ trả một số lượng không hạn chế các biến ra từ hàm foo.m. Hàm y = function bar(varargin) Chấp nhận vô số biến đầu vào của hàm bar.m Các câu lệnh varargin và varargout chỉ được sử dụng bên trong hàm m.file để chứa biến tuỳ chọn vào hoặc ra của hàm. Chúng phải được định nghĩa như là một biến cuối cùng trong danh sách các biến khai báo ở câu lệnh function. CHƯƠNG 5. MÔ PHỎNG CÁC HỆ THỐNG ĐỘNG LỰC BẰNG SIMULINK
  • 65. THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 DỊCH VỤ VIẾT THUÊ ĐỀ TÀI TRỌN GÓI ZALO / TEL: 0909.232.620 32 Downloaded by EBOOKBKMT VMTC ([email protected])