linux系统下c++程序读取matlab数据文件(.mat)

linux系统下c++程序读取matlab数据文件(.mat),第1张

没做过读matlab

不过看你这个出错的情况

应该是libmat.so没有编进去

建议检查流程

/usr/local/MATLAB/R2012a/bin/glnxa64 libmat.so 这个文件确实存在 

确定该文件中确实有提到的几个函数

确定该so文件已成功编译到你的elf中

这几点确定后 就应该不会出这个问题了

强烈怀疑/usr/local/MATLAB/R2012a/bin/glnxa64 libmat.so这个文件

按照你的写法 应该是在/usr/local/MATLAB/R2012a/bin/下面有

glnxa64 libmat.so这样的一个文件

可是 成熟的软件发布时不太可能允许它的文件名中带有空格

方法如下:

读取NIFTI,使用自带的niftiread函数

filename = 'test.nii.gz'

img = niftiread(filename)

这样读取出来的只有一个数组,也就说只是单纯读了一个图像。另一种方法是使用matlab官方给出的一个工具包,不过我没有试过。

如果想读取其他信息:

info = niftiinfo('test.nii.gz')

结果是一个结构体:

需要得到拿个信息只需要按照查看结构体的方法就可以了。

读取dicom只读一张图片很简单,

img_path = 'test'%有没有扩展名dcm其实都可以

img = dicomread(img_path)

同样这样读出来的也只有一个数组,表示的是图像本身,如果想查看其他信息,可以使用dicominfo函数

img_info = dicominfo(img_path)

dicominfo返回的是一个结构体,其中包含了非常多的信息,其中一部分:

更多的时候需要读一个文件夹内的所有dicom图片,比如动态成像中不同的时间帧,或者三维成像中不同的切片,转化成.nii格式或者mat文件用作后续处理。

读取所有dicom图片的方法和读取普通图片其实是差不多的,就是先把所有文件名存成一个list,然后一个一个读,存到一个多维的数组中。

1.2.1 首先我们得将需要打开的mat文件发到一个文件夹目录中(假设文件夹目录名为‘data’),作为我们将要使用的工作目录,

1.2.2 然后打开matlab软件,如下 *** 作,点击这个按钮(“浏览文件夹”),添加存有mat文件的data文件夹,导入文件夹;

1.2.3 之后通过matlab左停靠的【当前文件夹】视图,就可以在预览界面查看mat文件的具体数据和内容;又或者是在【命令行窗口】编码load命令,直接导入数据集

有时候我们在使用matlab进行运算的时候,想保存和读取mat文件数据,怎么 *** 作呢,下面来分享一下方法

开启分步阅读模式

工具材料:

matlab

保存和读取mat文件数据方法

*** 作方法

01

第一步打开matlab,在命令行窗口中输入a=[1 2 3 4 5 6],按回车键之后,输入save a,将a变量保存在新生成的a.mat文件,如下图所示:

02

第二步按回车键之后,在当前文件夹中,可以看到新生成的a.mat文件,需要注意的是在保存数据到mat文件中的时候,可以设置mat文件名,保存的变量,保存的路径,如下图所示:

03

第三步使用“load a”,读取a.mat文件数据,读取之后,就可以直接使用mat文件里面的a变量,如下图所示:

04

第四步如果我们想保存多个变量到mat文件中,可以通过save('data.mat','a','b')的方式,data.mat是生成的mat文件名,a和b是存入的变量,

05

第五步使用load('data.mat')读取mat文件,读取之后,可以直接使用a和b变量


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8153754.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存