我有一个我通过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