加载或导入映射,用于在MATLAB中使用类实例使用



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

myMap.mat

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

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

将mymap"进入班级"的最有效方法是什么,以便实例可以使用它?matfile一直在给我一些有关格式不支持部分加载的警告,我无法想象load非常有效。任何建议都将不胜感激。

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

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

最新更新