Save/Load an Object Array
이전 댓글 표시
I have a script that imports a large dataset from a .csv file and converts it to Matlab objects of a custom class. The resulting output of the script is an array of these objects. The script takes roughly 8 hours to complete. Once I've imported and structured the data into the object array I'd like to save it so I only have to do it once and can utilize it in other scripts by simply loading the saved object array. I believe I'm able to do the save part properly - after the script is finished I just call the save('filename', 'variable') function from the Command Window to save my object array from the workspace. Where I'm running into problems is when I'm trying to load it in another script. For example, lets say I saved the object array as 'testObjArray.mat'. If I load it and try to call an attribute from it using the following code:
thisObjArray = load('testObjArray.mat')
thisObjArray.name{1}
...I get a failure stating that I'm referencing a non-existent field 'name'. It seems like my problem is that when assigning thisObjArray with the load function I'm ending up with a struct rather than my object array. Is there a different way to load the file so that it remains an object array?
Thanks, Scott
채택된 답변
추가 답변 (2개)
Walter Roberson
2015년 8월 6일
The output of load() is always a struct, with one field for every variable saved in the file. You might need something like
thisObjArray.testObjArray.name{1}
James Tursa
2015년 8월 7일
To get your original variables to show up with the names they had originally (instead of field names in a struct), just use load without assigning the output to a variable. E.g.,
load('testObjArray.mat')
댓글 수: 2
ScottPT303
2015년 8월 11일
Steven Lord
2015년 8월 11일
The variable is stored as one of the fields in your struct array. Try this example; I predict that the fields of the struct array data will be x and y, that data.x will be 17, and that data.y will be 23.
x = 17;
y = 23;
save('mymatfile.mat', 'x', 'y')
data = load('mymatfile.mat')
카테고리
도움말 센터 및 File Exchange에서 Workspace Variables and MAT Files에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!