PIC Vietnam

Go Back   PIC Vietnam > Robotics > Matlab-Simulink & Labview & 20-Sim

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Matlab-Simulink & Labview & 20-Sim Các công cụ mô phỏng đa ngành...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 23-03-2008, 12:54 PM   #1
hoaln
Nhập môn đệ tử
 
Tham gia ngày: Oct 2006
Bài gửi: 10
:
Send a message via Yahoo to hoaln
Lập trình hướng đối tượng trên Matlab

Em đang tìm hiểu vấn đề này.
Em có đọc Help của Matlab nhưng mà 1 số ví dụ của nó lại không chạy được.
http://www.mathworks.com/access/help...matlab_oop.pdf

Em dùng version 7.1,không biết phải version bao nhiêu thì mới hỗ trợ lập trình hướng đối tượng.
Thêm 1 điểm nữa là matlab hình như không cho định nghĩa kiểu.Thế thì thật là bất lợi.

Ai có kinh nghiệm rồi có thể chỉ bảo cho em được không ạ

thay đổi nội dung bởi: hoaln, 23-03-2008 lúc 01:07 PM.
hoaln vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-03-2008, 03:18 PM   #2
picvendor
Super Moderator
 
Tham gia ngày: Jun 2005
Bài gửi: 385
:
Version 7.1 cũng đã hỗ trợ lập trình hướng đối tượng rồi. Suốt version 7 cho đến R2007b, hình như là cách lập trình hướng đối tượng giống nhau. Sang R2008a thì có thay đổi.

Với version 7.1, cấu trúc của nó rất đơn giản:


1 thư mục sẽ là một lớp, thư mục này có tên bắt đầu bằng ký tự @

File khởi tạo đối tượng của lớp phải có tên giống tên thư mục (bỏ chữ @)

File khởi tạo ấy sẽ khai báo các biến của đối tượng. Theo đặc điểm của Matlab, nó sẽ tự nhận biết kiểu nào là phù hợp, chứ mình không cần định kiểu cho biến. (ví dụ gán biến a=1 thì a sẽ là double, gán a=true thì a sẽ là boolean)

Các biến của đối tượng không có phân biệt giữa public / protected / private (nhưng sang version 7.6 - R2008a thì có). Mặc định tất cả các biến là private, hàm nào ở bên ngoài thư mục của lớp đều không truy cập được biến, mà phải gọi một hàm bên trong thư mục của lớp (bất kỳ file .m nào thuộc thư mục đó đều có quyền truy cập biến của đối tượng). Người ta hay viết hàm set.m và get.m cho mỗi lớp.

Matlab có kiểu override các hàm cơ bản, ví dụ nếu mình viết hàm có tên plus.m, thì khi thực hiện lệnh a+b (với a và b là 2 đối tượng của lớp đó), nó tương đương với plus(a,b). Tương tự với các hàm trùng với từ khóa minus, multiply...
__________________
Cách tìm link DOI để yêu cầu bài báo ở Sciencedirect: http://www.picvietnam.com/forum/show...&postcount=682
Cách tìm link DOI để yêu cầu bài báo ở IEEE: http://www.picvietnam.com/forum/show...&postcount=760
Cuộc thi thiết kế PIC (tạm ngưng): http://www.picvietnam.com/contest
picvendor vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-03-2008, 04:13 PM   #3
hoaln
Nhập môn đệ tử
 
Tham gia ngày: Oct 2006
Bài gửi: 10
:
Send a message via Yahoo to hoaln
Em thấy trong help của Matlab
http://www.mathworks.com/access/help...intropage.html
Có mấy ví dụ:trong đó có ví dụ viết trong M-files

classdef
properties
....
end
methods
function ...
function ....
end
Cái cấu trúc này gần giống C++,tuy nhiên matlab của em lại không hiểu.Có thể nó là cấu trúc của matlab R2008a.
Không biết 1 chương trình OOP trên Matlab 7.1 có viết giống C++ không.
__________________
Dept.of.Automatic Control

thay đổi nội dung bởi: hoaln, 23-03-2008 lúc 04:44 PM.
hoaln vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-03-2008, 05:10 PM   #4
picvendor
Super Moderator
 
Tham gia ngày: Jun 2005
Bài gửi: 385
:
Đấy là cách viết của Matlab R2008a đấy (một class đặt trong một file .m, bao gồm cả phần khai báo và các methods của nó, không phải là một thư mục như trước).

Em xem phần Help trong bản Matlab cài trong máy, thì nó chỉ chính xác cách làm với bản Matlab đó. (Mathworks.com hình như cũng có lưu phần help của các version cũ, nhưng không biết giờ link cho v7.1 là gì)
__________________
Cách tìm link DOI để yêu cầu bài báo ở Sciencedirect: http://www.picvietnam.com/forum/show...&postcount=682
Cách tìm link DOI để yêu cầu bài báo ở IEEE: http://www.picvietnam.com/forum/show...&postcount=760
Cuộc thi thiết kế PIC (tạm ngưng): http://www.picvietnam.com/contest
picvendor vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 07:10 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam