加载或导入地图以供matlab中的类实例使用

时间:2018-04-05 19:03:40

标签: matlab class import load instance

我有一个containers.Map文件/变量,我已经通过Matlab命令窗口(或其他一些脚本)定义并将其保存到目录中。我希望能够让我的类的一个实例能够使用该映射,而不必在类定义中定义它,或者每次调用函数时使用其他函数定义它。所以我有:

myMap.mat

并且在单独的myClass.m文件中(在同一目录中)我希望能够像这样调用myMap:

classdef myClass < handle
    properties
        number
    end
    methods
        function obj = myClass(input)
            obj.number = myMap(input);
        end
    end
end

将myMap&#34;放入班级的最有效方法是什么?以便实例可以使用它? matfile一直在给我一些关于不支持部分加载的格式的警告,我无法想象load非常有效。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用许多方法,但老实说,我认为最简单的方法是在类构造函数中使用persistent对象,如下所示:

classdef myClass < handle
    properties
        number
    end

    methods
        function obj = myClass(input)
            persistent pmap;

            if (isempty(pmap))
                load('map.mat','map');
                pmap = map;
            end

            obj.number = pmap(input);
        end
    end
end