我有一个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
非常有效。任何建议都表示赞赏。
答案 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