2012-06-25 79 views
2

我想加載並保存從classdef樣式類實例化的一些對象。 當對象存在於工作區中時,我可以使用「保存」和「加載」,但不能在外面。如何將MATLAB類保存到文件

例如,如果我有一個名爲manager的類,需要加載並保存不同的員工類,那麼該僱員類將不存在於工作區中。

我是否需要編寫自定義保存例程?有沒有利用現有工具的方法?

+0

管理器是否包含(具有)員工作爲類成員?或者它只是一個內部管理器的靜態功能? –

+0

員工將是經理的班級成員 – danatron

回答

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,保存命令也會在保存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. 
+0

謝謝,但這更多的是解決方案的解決方法。我想我可以更直接地提出這個問題:我想保存一個不在工作區中的類。保存例程不起作用,我所能做的就是爲每個類編寫一個自定義的保存/加載例程。有沒有更好的辦法? – danatron

+0

@ user1104922,不是我所知道的。 –