如何将MATLAB类保存到文件中

时间:2012-06-25 18:17:53

标签: matlab matlab-class

我想加载并保存从classdef样式类实例化的一些对象。 当对象存在于工作空间中时,我可以使用“保存”和“加载”,但不能在外部使用。

例如,如果我有一个名为manager的类,需要加载和保存不同的员工类,那么员工类将不会存在于工作区中。

我是否需要编写自定义保存例程?有没有办法利用现有的工具?

1 个答案:

答案 0 :(得分:1)

首先,我希望我能正确理解你的问题。

你有这样的事情:

   class Manager
      properties
          Employees
      end
   end

   class Employee

   end

您有一个Manager

的实例
   manager = Manager();
   e1 = Employee();
   e2 = Employee();;
   manager.Employees{1} = e1;
   manager.Employees{2} = e2;

你想保存它。

在这种情况下,即使您的工作区中没有e1e2,save命令也会在保存Manager时保存它们。

但是,要正确加载它们,您的工作目录中必须同时包含EmployeeManager。这是有道理的,因为没有其他方式可以知道它是什么类。事实上,你会收到一个错误:

Warning: Variable 'manager' originally saved as a Manager cannot be instantiated as an object and will be read in as a uint32. 
Warning: Variable 'e1' originally saved as a Employee cannot be instantiated as an object and will be read in as a uint32. 
Warning: Variable 'e2' originally saved as a Employee cannot be instantiated as an object and will be read in as a uint32.