Loading user-defined classes from .mat files absent the classdef

At one time, if I had a .mat file with a user-defined class variable, but lacked the classdef file, loading the .mat file would succeed, but convert the class property data to struct form. Now, in more recent Matlab, it fails to do that. Is there a supported way to load a user-defined object in a stripped down form, like a struct, when the class definition is absent?

댓글 수: 1

I wonder if that struct behaviour was in the days of the older class definition, where classes were specially-blessed struct ?

댓글을 달려면 로그인하십시오.

 채택된 답변

Steven Lord
Steven Lord 2025년 1월 8일

0 개 추천

At one time, if I had a .mat file with a user-defined class variable, but lacked the classdef file, loading the .mat file would succeed, but convert the class property data to struct form.
That was the behavior prior to the introduction of classdef files IIRC, where the way to construct objects in the constructor function (inside the @ directory with the same name as the class) was to create a struct and call class with at least two inputs (the struct and the name of the class.) I don't remember off the top of my head if this is still the behavior for classdef based classes; I think it may load them as integer arrays, but I'm not 100% certain.
Now, in more recent Matlab, it fails to do that. Is there a supported way to load a user-defined object in a stripped down form, like a struct, when the class definition is absent?
I don't believe so. The first part of the object load process is to create an object. There is a way to modify the loading process, but it requires a method defined as part of the class.

댓글 수: 1

Too bad. Well, I suppose it might provide a nice way to encrypt a mat file. Just store the data in user-defined class properties and only give the classdef to intended file recipients.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Properties에 대해 자세히 알아보기

제품

질문:

2025년 1월 8일

댓글:

2025년 1월 8일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by