在Matlab类的功能输出(Output of class function in Matlab)

2019-10-20 03:53发布

我带班很久以前的工作,但我却无法得到一件事是如何从功能/输出构造的类似功能。 我已经看到了多个例子,但coulnd't清除点。 这里心中已经的一个简单的例子myFunc输出阵列,并且同样的功能在类,如何从类输出像的功能。 如何采取从类的任何功能输出就像一个功能?

myFunc的:

function M=myFunc(n)
[M]=[];
i=0;
for ii=1:n
    M(ii)=i;
    %% Counter
    i=i+4;
end
end

我的课:

    classdef myClass
        properties (Access=private)
            n
            M
            i
        end
        methods
            function obj = myClass(n)
                obj.n = n;
            end
            function myFunc(obj)

                for ii=1:obj.n
                    obj.M(ii)=obj.i;
                    %% Counter
                    obj.i=obj.i+4;
                end
            end
        end
    end

**EDIT 1:**
classdef myClass
    properties (Access=private)
        n
        M
        i
    end
    methods
        function obj = myClass(n)
            obj.n = n;
        end


    function M = myFunc(obj)

            for ii=1:obj.n
                obj.M(ii)=obj.i;
                %% Counter
                obj.i=obj.i+4;
            end
            M = obj.M;
    end
    end
end

Answer 1:

一种方法的工作原理就像一个正常的功能,不同的是一个非静态方法的第一个输入总是有望成为一个类的实例

你叫定义为方法

methods
   function [out1, out2] = fcnName(object, in1, in2)
      % do stuff here (assign outputs!)
   end
end

像这样:

[out1, out2] = object.fcnName(in1,in2)

要么

[out1, out2] = fcnName(object,in1,in2)

适用于您的示例:

methods
    function M = myFunc(obj)

            for ii=1:obj.n
                obj.M(ii)=obj.i;
                %% Counter
                obj.i=obj.i+4;
            end
            M = obj.M;
     end
 end

你叫myFunc的作为

 obj = myClass(3);
 M = myFunc(obj);


文章来源: Output of class function in Matlab