在 matlab 中加载或导入供 class 实例使用的地图
Load or import map for use by class instance in matlab
我有一个 containers.Map
file/variable,我已通过 Matlab 命令 Window(或其他一些脚本)定义并将其保存到目录中。我希望能够让我的 class 的实例能够使用该映射,而不必在 class 定义中定义它,或者使用每次函数定义它的其他函数叫做。所以我有:
myMap.mat
并且在单独的 myClass.m
文件中(在同一目录中)我希望能够像这样调用 myMap:
classdef myClass < handle
properties
number
end
methods
function obj = myClass(input)
obj.number = myMap(input);
end
end
end
获取 myMap "into the class" 以便实例可以使用它的最有效方法是什么? matfile
一直在给我一些关于不支持部分加载的格式的警告,我无法想象 load
的效率非常高。任何建议表示赞赏。
您可以使用多种方法,但老实说,我认为最简单的方法是在 class 构造函数中使用 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
我有一个 containers.Map
file/variable,我已通过 Matlab 命令 Window(或其他一些脚本)定义并将其保存到目录中。我希望能够让我的 class 的实例能够使用该映射,而不必在 class 定义中定义它,或者使用每次函数定义它的其他函数叫做。所以我有:
myMap.mat
并且在单独的 myClass.m
文件中(在同一目录中)我希望能够像这样调用 myMap:
classdef myClass < handle
properties
number
end
methods
function obj = myClass(input)
obj.number = myMap(input);
end
end
end
获取 myMap "into the class" 以便实例可以使用它的最有效方法是什么? matfile
一直在给我一些关于不支持部分加载的格式的警告,我无法想象 load
的效率非常高。任何建议表示赞赏。
您可以使用多种方法,但老实说,我认为最简单的方法是在 class 构造函数中使用 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