MAT File I/O 库txt文件生成mat格式
来源:互联网 发布:java代码混淆器 编辑:程序博客网 时间:2024/05/27 00:29
获取MAT File I/O文件路径
https://sourceforge.net/projects/matio/?source=typ_redirect
配置
在Linux下
1、解压mat_1.5.8文件
2、运行./configure
3、make
4、make check
5、make install
不过在运行configure时候看打印出的log是否支持MATv7.3,若不支持,则进行脚本修改
# Check whether --with-hdf5 was given.if test "${with_hdf5+set}" = set; then : withval=$with_hdf5; HDF5_DIR=${withval}else HDF5_DIR=/home/huashui.liu/mat/localfi同样也需要查看zlib是否支持,若不支持也需要进行路径修改
运行mat需要zlib库支持,zlib是压缩格式
http://zlib.net/
编译方式和mat编译一样
默认情况生成的mat格式的版本是v5的 ,若想生成v7.3版本,需要使用HDF5库支持,
https://www.hdfgroup.org/HDF5/release/obtainsrc.html#conf
按照INSTALL file编译
测试生成二维矩阵
#include <iostream>#include <math.h>#include <stdlib.h>#include "matio.h"#include <stdio.h>#include <string.h>#define CELLSIZE 2int main(int argc, char *argv[]){char msg[1024];long long colnum=0,rownum=0;char *tp;int row=0,col=0,n=0;//row col;double *b;mat_t *matfp;matvar_t *matvar;size_t dims[2] = {0,0};//Read file get col numberFILE *fp=fopen("liushuia.txt","r");if(fp==NULL){printf("Read file failed\n");return 0;}fgets(msg,1024,fp);tp=strtok(msg,"\n ' '");while(tp!=NULL){colnum++;tp=strtok(NULL,"\n ' '");}while(!feof(fp)){fgets(msg,1024,fp);rownum++;}dims[0] = rownum;dims[1] = colnum;printf("Start ................rownum=%ld\n",rownum);b=(double*)malloc(sizeof(double)*rownum*colnum);//malloc memory restore messageif(b==NULL){printf("malloc failed...%ld\n",colnum);return 0;}rewind(fp);while(!feof(fp)){for(;row<rownum;row++){fgets(msg,1024,fp);tp=strtok(msg,"\n ' '");for(col=0;col<colnum;col++){if(tp!=NULL){ b[col*rownum+row]=atof(tp);}tp=strtok(NULL,"\n ' '");}printf("row=%d\n",row);}fgets(msg,1024,fp);}//make matmatfp = Mat_CreateVer("testa.mat",NULL,MAT_FT_DEFAULT);if ( NULL == matfp ) {fprintf(stderr,"Error creating MAT file \"0718.mat\"\n");return EXIT_FAILURE;}matvar = Mat_VarCreate("x",MAT_C_DOUBLE,MAT_T_DOUBLE,2,dims,b,0);if ( NULL == matvar ) {fprintf(stderr,"Error creating variable for 'x'\n");} else {Mat_VarWrite(matfp,matvar,MAT_COMPRESSION_ZLIB);Mat_VarFree(matvar);}free(b);Mat_Close(matfp);printf("Mat End .......\n");getchar();return 0;}由于内存限制,当txt文件很大时候,申请内存可能不够,另外Mat_varCreate申请的内存也要受到限制,看看mat.c源文件Mat_VarCreate实现,
在vs上运行同样方式
0 0
- MAT File I/O 库txt文件生成mat格式
- 保存matlab的.mat文件为txt格式
- Python 读取mat txt 文件
- 将txt文件转化为mat文件
- .mat文件与.txt文件相互转换
- MATLAB生成、读取mat文件
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- Matlab将mat格式数据保存为txt格式
- mat文件与txt文件的相互转换(特别的,mat转txt,数据格式设置)
- mat文件与txt文件的相互转换(特别的,mat转txt,数据格式设置)
- MATLAB的.mat文件与txt文件的相互转换(mat转txt,数据格式设置)
- c对mat文件的几个操作,打开mat文件 读取mat文件下的阵列,生成mat文件
- mat文件
- Mat文件
- mat文件
- .mat与txt互换
- leetcode 第28题 实现函数strStr
- Log的用法
- 查看数据库连接数和修改最大连接数
- Scala 学习<一>
- 树形DP
- MAT File I/O 库txt文件生成mat格式
- 基于 RESTful 标准的 Web Api
- JAVA成员变量和静态变量的区别
- Codeforces Round #366 (Div. 1) D Captain America 网络流
- RecycleView的不同类型Item点击事件
- Python 函数的参数传递(2)
- MVC+Easyui tree菜单导航静态(8)
- java学习笔记(二)
- disconf简单例子(maven)