14

ドット表記を使用してメソッドを適用した後でオブジェクト プロパティを参照しようとすると、問題が発生します。初期オブジェクトにインデックスを付けようとしたときにのみ発生します

classdef myclassexample

properties
    data
end    

methods   
    function obj = procData(obj)            
        if numel(obj)>1
            for i = 1:numel(obj)
                obj(i) = obj(i).procData;
            end
            return
        end
        %do some processing
        obj.data = abs(obj.data);
    end
end
end

次に、以下を割り当てます

A = myclassexample;
A(1).data= - -1;
A(2).data =  -2;

配列全体を呼び出してプロパティデータを収集すると、正常に動作します

[A.procData.data]

Aにインデックスを付けようとすると、スカラーのみが得られます

[A([1 2]).procData.data]

プロパティの呼び出しがなくてもうまくいくように見えますが

B  = A([1 2]).procData;
[B.data]

何か案は?

4

1 に答える 1