Java读取mat文件
概述
使用ujmp中的jmatio模块读取.mat文件到java程序中。

其实,ujmp主要是在模块core中实现了矩阵运算,其余模块都是复用了已有的开源库。模块jmatio是复用了已有的JMatIo,对这个读取mat文件到java程序的库做了一层封装。从ujmp的官网(https://ujmp.org/)下载ujmp的jar包,但是这一个jar包并不能读取mat文件(虽然jar包内有jmatio模块),还需要下载一个JMatIo的jar包(http://pan.baidu.com/s/1nuMMqvB)。将两个jar包都加入到工程中才可以从mat文件中顺利读取数据到java程序中。
添加jar包到工程
在创建的工程中新建一个lib文件夹,将以上两个jar包拷贝到此文件夹中,必须要拷贝到项目中。比如,我之前是将两个jar包放在桌面上,但是当把jar包删除或移动之后,程序就不能运行了,很简单的道理。

接下来就是将两个jar包添加到工程中,以便在程序中使用这两个包中定义的类。


读取mat文件的代码
/**
* Created by hfz on 2015/12/22.
*/
import org.ujmp.jmatio.ImportMatrixMAT;
import org.ujmp.core.Matrix;
import java.io.File;
import java.io.IOException;
public class test{
public static void main(String[] args)throws IOException{
//相对路径的根目录是当前工程的目录(C:\Users\hfz\Desktop\test)。另外相对路径的起始处无“/”
ImportMatrixMAT test=new ImportMatrixMAT();
File file=new File("data/A.mat");
Matrix testMatrix=test.fromFile(file);
testMatrix.showGUI();
System.out.println("ss");
} }
另外一种更简单的方式
更简单的方式就是直接使用jmatio库从.mat文件读取数据到内存中,并将其转化为二维数组的形式,代码如下:
import com.jmatio.io.MatFileReader;
import com.jmatio.types.MLArray;
import com.jmatio.types.MLDouble;
MatFileReader read = new MatFileReader("data/totalDataSet.mat");
MLArray mlArray=read.getMLArray("img");//mat存储的就是img矩阵变量的内容
MLDouble d=(MLDouble)mlArray;
double[][] matrix=(d.getArray());//只有jmatio v0.2版本中才有d.getArray方法
jmatio下载:http://pan.baidu.com/s/1nuMMqvB
参考:
http://www.programcreek.com/java-api-examples/index.php?api=com.jmatio.io.MatFileReader
https://www.kaggle.com/c/decoding-the-human-brain/forums/t/7862/using-jmatio/65560
http://blog.madhukaraphatak.com/matfile-to-rdd/
Java读取mat文件的更多相关文章
- java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)
java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...
- Java读取Excel文件的几种方法
Java读取 Excel 文件的常用开源免费方法有以下几种: 1. JDBC-ODBC Excel Driver 2. jxl.jar 3. jcom.jar 4. poi.jar 简单介绍: 百度文 ...
- Java读取txt文件
package com.loongtao.general.crawler.slave.utils; import java.io.BufferedReader; import java.io.File ...
- java 读取XML文件作为配置文件
首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...
- java 读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- 用java读取properties文件--转
今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享. 下面直接贴出代码:java类 public class Mytest pub ...
- java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .
背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...
- java读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- java读取XML文件的四种方式
java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...
随机推荐
- JMeter 安装与使用基本教程
JMeter使用了不同技术和协议,是一款可以进行配置和执行负载测试.性能测试和压力测试的工具. 什么是JMeter? JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100% ...
- How to convert any valid date string to a DateTime.
DateTimeFormatInfo pattern = new DateTimeFormatInfo() { ShortDatePattern = "your date pattern&q ...
- Creating a ZIP Archive in Memory Using System.IO.Compression
Thanks to http://stackoverflow.com/a/12350106/222748 I got: using (var memoryStream = new MemoryStre ...
- Web Site 开发学习
http://web-source.net/web_design_languages.htm#.Vw4uaeRJmt9 http://www.make-a-web-site.com/web-desig ...
- Cornerstone详细操作
1.⾸首先打开Cornerstone 2.然后如下图所⽰示: 3.选择对应的仓库,如下图所⽰示 4.然后Import完成之后,就把本地的⽂文件提交到SVN服务器上了,如下图所⽰示,另外如果你想要使 ...
- 新浪微博客户端(40)-使用AFN发送带图片的微博
DJComposeViewController.m /** 发微博 */ - (void)sendStatusRequest { AFHTTPSessionManager *RequestManage ...
- Linux下的文件及文件后缀名
Linux下的文件及文件后缀名 2013-03-14 15:34 6969人阅读 评论(0) 收藏 举报 ++++++++++++++++++++++++++++++++++++++正文+++++++ ...
- 父容器的flowover:hidden 必须配合父容器的宽高height width才能生效
有时候 给父容器 加上了 flowover:hidden 这个css后, 其中的子元素为什么仍然会跑出来? 解决的根本方法就是要给 父容器 加上具体的一个宽度, 或高度. (而这个宽度和高度, 其实你 ...
- Linux查看系统信息的一些命令及查看已安装软件包的命令
转自:http://cheneyph.iteye.com/blog/824746 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看 ...
- shell学习之路:流程控制(for)
for循环的语法: 1. for 变量 in 值1 值2 值3.... do 程序 done 例如:下列脚本会分别打印4次 分别是morning noon afternoon evening的值 # ...