将Matlab属性保存到mat文件

时间:2016-11-28 10:36:47

标签: matlab oop serialization save mat-file

我有一个名为struct的{​​{1}}属性的类:

myStruct

我想将结构保存到properties myStruct; end 文件中。我试过了:

.mat

但它给出了错误:

save -append registers.mat myStruct;

我有更新Variable 'myStruct' not found. 的不同功能,例如:

struct

这些是同一类的所有功能。

1 个答案:

答案 0 :(得分:2)

我认为此代码中的主要问题是您如何从函数中访问<?php $var as $profile[0]; $id = $var->id; $roll = $var->roll; $photo = $var->photo; $active = $var->active; ?> 。看看以下代码:

myStruct

想要做的是将function configureChannel( obj, Channel ) myStruct.Channel = Channel; ... end 分配到当前对象的Channel字段中Channel&#39; s myStruct财产。 实际所做的相当于调用:

Channel

即,您在myStruct = struct('Channel', Channel); 的当前工作空间/范围内创建新的本地变量而不实际更新对象的属性{{ 1}}。

因此,您需要做出的第一个更正是如何访问setter中的configureChannel

obj

接下来是保存的问题。

将对象的字段副本转储到文件时,我希望save将您的任意对象视为myStruct,因此struct saving conventions应该适用:

  

obj.myStruct.Channel = Channel; |将struct指定的标量结构的字段存储为文件中的单个变量。例如,'-struct',structName保存标量结构structName

因此,我希望以下工作 免责声明:我没有测试

save('filename.mat','-struct','S')

以上情况失败的其他替代方案:

S

最后一件事 - 您可能已经注意到,我使用save('filename.mat','-struct','obj.myStruct'); 的函数形式,因为我认为它更易于维护/可读/防呆:

save('filename.mat','obj.myStruct');            % Alternative #1
tmp = obj.myStruct; save('filename.mat','tmp'); % Alternative #2