Reading uneven datasets from .mat file
2 次查看(过去 30 天)
显示 更早的评论
Hello all,
I'm trying to load datasets from .mat file in MATLAB. However, my datasets are not evenly distributed due to which I cannot import my entire dataset into MATLAB. My datasets are spilt in the intervals of 20 and 21. Is there a way to import the entire datasets at once into MATLAB?Please provide some suggestions to resolve this issue.
Thanks in advance!
3 个评论
Stephen23
2023-5-11
编辑:Stephen23
2023-5-11
Rather than generating the fieldnames youself (including non-existent ones), why not just loop over the existing fieldnames?:
If the aim is simply to extract to a numeric matrix, you could use STRUCT2CELL and then CAT(3,..).
Or STRUCTFUN with a function that returns a scalar cell, then again CAT(3,...).
回答(1 个)
Stephen23
2023-5-11
编辑:Stephen23
2023-5-11
Assuming that:
- the fields are in the required order (otherwise: you can sort them using ORDERFIELDS).
- the MAT file contains only the data that you require (otherwise: you can specify the variables to import).
S = load('testcase.mat');
C = structfun(@(m){m},S);
A = cat(3,C{:})
4 个评论
Stephen23
2023-5-11
"But can I load all frames at once? I only need frames (frame21 to frame 30215), will it be possible to import everything at once?"
The LOAD command i gave you in my last comment will import every variable whose name is "Frame" followed by some digits. That seems to match exactly what you describe. Did you try it? Did it not work for you?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Large Files and Big Data 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!