Tôi đang viết một tập lệnh Matlab, trong đó tôi có một loạt các đối tượng của cùng một lớp tự định nghĩa, nói A
, B
và C
. Sau đó, tôi có một chức năng làm việc trên bất kỳ của 2 đối tượng, như func(A,B)
.Làm thế nào để tạo một mảng con trỏ tới các đối tượng trong Matlab?
Bây giờ tôi muốn chọn một đối tượng, giả sử A
, và sau đó func(A,x)
thông qua tất cả các đối tượng khác. Vì vậy, về cơ bản đạt được một cái gì đó như:
func(A,B)
func(A,C)
A.update()
func(B,A)
func(B,C)
B.update()
...
Vì vậy, tôi cần phải tạo một mảng của tất cả các đối tượng tôi có thể lặp lại, trong khi loại trừ chính nó tất nhiên. Tôi cố gắng để làm điều đó với mảng di động, vì vậy tôi có:
AllObjs = {A,B,C}
for i=1:length(AllObjs)
if ~isequal(A, AllObjs{i})
func(A, AllObjs{i})
end
end
A.update()
Tuy nhiên, khi A
được cập nhật, các A
trong AllObjs
không nhận được bản cập nhật. Vì vậy, đối với vòng lặp tiếp theo, tôi phải tạo một mảng mới của tất cả các đối tượng. Nó có thể thực hiện được trong ví dụ đơn giản này nhưng không thể quản lý được khi các đối tượng được cập nhật ở nơi khác. Vì vậy, tôi muốn có một loạt các con trỏ cho tất cả các đối tượng. Google tìm kiếm của tôi nói với tôi không có con trỏ trong Matlab, nhưng có cách nào để đạt được những gì tôi muốn làm ở đây không?
Không lớp học của tôi không có 'handle'. Có tài liệu nào về nó không? – LWZ
Có rất nhiều tài liệu MATLAB và xem https://stackoverflow.com/q/6436539/4196396 – matlabgui