2

ハンドルクラスがありますFoo

classdef Foo < handle   
    properties (SetAccess = public, GetAccess = public)
        x
    end

    methods
        function obj = foo(x)
            % constructor
            obj.x = x;
        end 
    end       
end

次のオブジェクトを作成しますFoo

data = [1 2];
foo = Foo(data);  % handle object

を指す参照 (ハンドル) 変数を作成したいと思います。これはMatlabで可能ですか? たとえば、次は機能しません。afoo.x

a = foo.x;       % here `a` equals [1 2], `a` is not a handle object  
foo.x = [3 4];   % set property `x` to [3 4];
disp(a);         % a still equals [1 2] 
                 % even though the property `foo.x` has changed
                 % I want `a` to change when `foo.x` is changed.
4

1 に答える 1

1

いいえ、残念ながら Matlab ではできません。参照は、ハンドルから継承されたクラスのインスタンスであるオブジェクト (クラスなどFoo) に対してのみ行うことができます。つまり、これは可能です:

bar = foo
foo.x = [3 4]
disp(bar.x)      % would be [3 4]
于 2013-02-14T16:03:51.343 に答える