Cannot accèss methods of an Object after modified
조회 수: 5 (최근 30일)
이전 댓글 표시
I have following codes as junk.m & junk2.m
classdef junk
properties
myValue = [];
end
methods
function obj = junk() % constructor
obj.myValue = 11;
end
function obj = me()
end
end
end
function junk2()
obj = junk(); % construct an object of myClass
obj.myValue = 2; % set some fancy values to the object
obj2 = myFunction(obj); % pass the object to a nice function
disp(obj2.myValue) % verify that myValue has changed
end
function obj = myFunction(obj3)
obj.myValue = obj3.myValue + 1;
end
When I call this function I get following output for methods
methods(obj2)
Methods for class struct:
amd ctranspose fieldnames ichol linsolve permute struct2cell
cholinc display fields ilu luinc reshape transpose
methods(obj)
Methods for class junk:
junk me
How can I get both junk $ me methods after I call myFunction(Obj) method?
댓글 수: 0
채택된 답변
Honglei Chen
2012년 2월 15일
You need to use handle object. Use the following line in your class definition
classdef junk < handle
You can then write your function as
function myFunction(obj)
obj.myValue = obj.myValue+1;
end
댓글 수: 0
추가 답변 (2개)
Honglei Chen
2012년 2월 15일
You need to instantiate the class first in myFunction. The code as is just create a struct obj in myFunction that has a field named myValue.
function obj = myFunction(obj3)
obj = junk;
obj.myValue = obj3.myValue + 1;
end
BTW, you may want to pay more attention to class names and variable names, make them meaningful.
댓글 수: 2
참고 항목
카테고리
Help Center 및 File Exchange에서 Properties에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!