matlab load函数变量的名字,解决matlab load文件不知道变量名的问题

最近项目有个通用需求,就是在执行过程中load一个mat格式的文件,然后把这个文件中的数据进行处理。问题在于load之后,我们并不知道文件内变量的名字,这样就会造成一个很棘手的错误:执行以下代码,

687052231ecf55c009b3a56b7302aeb2.png

数据已经load,我按照自己的记忆去访问该数据,结果因为我记错了,导致提示说该变量不存在,如果所示:

38cecad682482dee32b38d0c4cb70030.png

原因是变量的真实名称是dat

557633cd84df31c83abfde8bfa7a9daf.png

于是我想到了给他赋一个名字不就好了吗?真实机智如我,如下操作:

7e136f699e8ae8c021e74af99fd07dc2.png

但是,但是,但是,事与愿违,还是出现错误了。怎么会超出维度呢,明明数据的是几万乘以几十的二维矩阵呢,为什么呢?怎么是个结构体:

8addf3d569b9809ac329a8e2b5deea82.png

为什么呢?原来通过上面的程序读进来的赋值之后,得到的a是个结构体:

18b9b4bd9a1614d4631429d6785eaa33.png270aad77eac864caf7e5cc9acbe71031.png

我要是想访问里面的数据,还是得要知道变量的名字才可以。可是我不知道啊!怎么办?

不磨叽,说方法!

使用的是matlab自带的函数fieldnames和getfield。下面的贴图是执行代码的截图:

9b40b7bec73d6f733f58e34160ea7219.png

通过封装成函数的形式,在参数传入方面与原来具有相同的使用方法,都是传入待读文件的路径。但是经过修改之后,函数会返回读到的数据,并且,变量的名字随你定,具有很强的实用性。

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值