如何在matlab中将对象作为成员变量创建?

时间:2013-03-16 04:08:51

标签: class matlab member-variables

我在matlab中有一个具有以下目录结构的项目:

+namespace\
    @class1\
        class1.m
    @class2\
        class2.m
mainfile.m
在class1.m中的

我有类似下面的内容

classdef class1

    %readonly variables
    properties(GetAccess = 'public',SetAccess = 'private')
        forename;
        lastname;
        middlename;

    end

    properties(Constant = true)

        %in centipascals
        p1 = class2(param1,param2); %this is the part I need to work

    end

    methods(Access = public)

        function this = class1(fname,lname,mname)

            this.forename = fname;
            this.lastname = lname;
            this.middlename = mname;

        end
    end
end

我似乎无法让这堂课奏效。 Class1无法识别class2的构造函数(可能是因为没有正确导入某些东西)。如何导入class2或我需要做什么才能将其他类实例作为成员变量?

1 个答案:

答案 0 :(得分:0)

在Matlab中,您需要完全限定对命名空间中的类的引用,甚至来自同一命名空间中的其他类。像这样。

classdef class1
    properties (Constant = true)
        %in centipascals
        p1 = namespace.class2(param1,param2);
    end
end

您可以import来自同一命名空间的其他类,但import只能在每个功能级别工作,并且不能在所有AFAIK的属性块中工作,所以它不会在这个具体案例中工作,可能比其他地方更麻烦。