Java用jmatio读取MAT文件

概述

前段时间遇到一个Java读取mat文件的问题,查阅了一些资料、博客,特别是这篇Java读取mat文件-lz3018之后,自己手动实现了一下,对基本的double、int、char、字符串、浮点数组、结构体、矩阵集合等能够提取出来。本文采用jmatio库直接将mat文件读取到内存中,再按照数据类型分别解析出来。
ps:第一次写博客,如有错误,请多多批评指正,谢谢^-^


添加jar到工程

这里需要jmatio库所依赖的jar包,已经存到百度云盘-链接:http://pan.baidu.com/s/1mhCYyTy 密码:pqek
在创建的工程中添加jar包:
添加jar包1
添加jar包2


读取mat文件

读取mat文件,并存入Map<String,MLArray>中,其中key是变量名称,value是变量的值

public static Map<String, MLArray> readMatFile(String filepath) {
        MatFileReader reader = null;
        try {
            reader = new MatFileReader(filepath);
        } catch (FileNotFoundException e) {
            System.out.println("文件未找到!");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("文件读取失败!");
            e.printStackTrace();
        }
        return reader.getContent();
    }

解析Map中内容

数据最终以Map<String,Object>形式返回,其中key形式为“变量名-变量类型”,value为变量的值

public static Map<String, Object> readMatContent(Map<String, MLArray> MatContent) {
        Map<String, Object> matContentMap = new HashMap<String, Object>();
        Map<String, Object> _struct = new HashMap<String, Object>();
        for (String key : MatContent.keySet()) {
            MLArray mc = MatContent.get(key);
            switch (judgeType(mc)) {
            case 1:
                matContentMap.put(key + "-cell", content2cell(mc));
                b
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值