MATLAB读取结构体中的数据

  • Post author:
  • Post category:其他


近期做一个数据分析的文章,需要使用经典的近红外光谱数据集 corn NIR (网址:

http://eigenvector.com/

), 但是下载的数据是包含在一个数据集中,无法直接使用,需要进行数据读取,此时有以下学习收获:

1.在读取包含在结构体中的近红外光谱数据之前,需要知道所需数据在结构体内的名称,使用 fieldnames() 函数查看具体名称,以上述数据集为例,在MATLAB中演示为:

>> fieldnames(m5spec)

ans = 

    'name'
    'type'
    'author'
    'date'
    'moddate'
    'imagesize'
    'imagemode'
    'data'
    'label'
    'axisscale'
    'title'
    'class'
    'include'
    'description'
    'userdata'
    'datasetversion'
    'history'

此时可以看到所需数据在该数据中的名称为“data”,其实此处完全可以双击结构体名就会显示结构体内部的具体信息,只是有的结构体设计不合理打开后超过显示范围导致无法显示,如果双击,则显示为:

这个就可以完全看到数据的大小,也知道所需数据的具体名称,下面需要对结构体数据进行提取;

2. 使用 getfield(m5spec, ‘data’),获取数据。

一般需要加一个名称方便后续运算,如 DATA = getfield (m5spec, ‘data’)。即可获得所需数据。

ok,至此完成相关操作。

共同学习,共同进步!

2020年1月11日



版权声明:本文为qq_35667901原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。