我得到了一个很大的.mat文件,如下所示:
whos('-file','grips.mat')
Name Size Bytes Class Attributes
grip1 1x1 1662198 struct
grip2 1x1 2032758 struct
grip3 1x1 1660278 struct
grip4 1x1 1650678 struct
grip5 1x1 1607478 struct
grip6 1x1 63353718 struct每个抓握都有几个记录下来的肌肉信号(EMG),这些信号来自几个传感器。我只想为其中一个夹点加载其中一个传感器信号。我想执行以下操作,但它不起作用:
EMG_signal = load('grips', 'grip6.data(1,:)')我能得到的最接近的结果是:
EMG_signal = load('grips', 'grip6');
EMG_signal = EMG_signal.grip6.data(1,:);然而,这涉及到加载几倍于我所需的数据,然后丢弃它。有没有简单的捷径?
这也适用于存储在.mat文件中的对象-当然,我不需要加载整个对象来获取其中一个变量(属性)的值。
非常感谢。
发布于 2012-08-14 10:45:35
问得好。看起来这取决于你运行的Matlab版本。从R2011b开始,Mathworks添加了matfile function。
但不幸的是,您的特定问题仍然无法解决,因为您存储的是结构而不是直接的矩阵。如果'grip6‘是一个矩阵,你可以像下面这样访问子矩阵:
matObj = matfile('grips.mat')
EMG_signal = matObj.grip6(1,:)但正如文档所说,
not文件不支持索引到:
结构的
有关Matlab不支持从mat文件加载矩阵或数组的部分内容的更多信息,请参阅此matlab central thread。
https://stackoverflow.com/questions/11941261
复制相似问题