MATLAB混合编程中的数据交流
来源:互联网 发布:linux ftp 多线程下载 编辑:程序博客网 时间:2024/05/05 10:58
二、MATLAB混合编程中的数据交流
1、文件的打开和关闭
[f, message] = fopen(‘filename’,‘mode’);
其中,f返回文件标志,通常为非负整数;message返回无法打开文件的原因。Filename为文件名,mode为对文件处理的方式,如:
mode
意义
rt
只读方式打开
wt
只写方式打开
at
追加方式,原文件后面续写
r+t
读写方式打开
w+t
读写创建,原文件被清除
a+t
读和追加方式
At
读写方式打开或创建,磁带介质文件
Wt
写入方式打开或创建,原文件清除磁带介质文件
fclose(f)或者fclose all;f为标志,如fopen。
2、文本数据(ASCII)
导入模板:
file→Import Data
分隔符:
space(空格)、comma(,)、semicolon(;)、ab或其他字符。
读取函数比较:
函数
数据类型
分隔符
返回值
csvread
数值
,
1
dlmread
数值
任何字符
1
fscanf
字母和数值
任何字符
1
load
数值
Space
1
textread
字母和数值
任何字符
多返回值
textread调用方法:
[A,B,C,……]=textread(‘filename’,‘format’);
或[A,B,C,……]=textread(‘filename’,‘format’,N);
%s和%f:读入字母和数值;%*s和%*f:不读。
数据存写函数:
名称
适用数据
分隔符
csvwrite
数值
,
diary
数值或单元阵列
空格
dlmwrite
数值
任何字符
fprintf
字母和数值
任何字符
save
数值
制表符或空格符
3、二进制数据
导入模板:file→Import Data
导入或导出函数,如:
函数名称
文件扩展名
数据格式
load、save
.mat
MATLAB下的MAT数据格式
aviread、aviwrite
.avi
AVI格式的音频视频数据
cdfread、cdfwrite
.cdf
CDF格式
hdf、hdf
.hdf
HDF格式
imread、imwrite
.bmp .cur .gif .ico .hdf
.jpg .pbm .pgm .png .pnm
.ppm .pcx .tif .xwd .ras
图形数据
wavread、wavwrite
.wav
Windows系统的声音文件
xlsread、xlswrite
.xls
Excel电子表格数据
AVI格式存写MATLAB图像步骤:
用avifile函数建立一个AVI文件;
用addframe函数来捕捉图像并保存到AVI文件中;
使用close函数关闭AVI文件。
将一个已经存在的MATLAB电影文件转换为AVI格式,需要使用函数movie2avi。
4、使用文件I/O函数
读取:A=fread(fid,[m n]);fid为整数型变量,由fopen函数获得;[m n]为返回矩阵的格式和大小,可直接为m。
写入:count=fwrite(fid,A,precision);f同上面的fid;count为返回写入文件数据的大小;A表示要写入的数据矩阵;precision表示写入格式。
fscanf函数与C语言中相似,能够从一个有格式的文件中读取数据,并将它赋给一个或多个变量。其格式转换符:
格式转换符
意义
%c
读取字符型变量,也可以指定多个字符,如%3c等
%s
读取字符串变量
%d
读取整数型变量
%f
读取浮点数
%g
读取双精度浮点数
Fprintf将会把数据转换成字符串,并将它们输出到屏幕或文件中。
每次打开文件时,MATLAB就会保持一个文件位置指针(File Position Indicator)。其控制函数:
名称
功能说明
fseek(fid,offset,origin)
设定指针位置
ftell(fid)
获得指针位置
frewind(fid)
重设指针到文件起始位置
feof(fid)
测试指针是否在文件结束位置
其中,fid是指定的文件标识符;offset为整数型变量,表示相对于指定位置需要的偏移字节数,正数向尾,负数向头;origin表示文件中的参考位置,如:
origin
说明
‘bof’或-1
文件开头
‘cof’或0
文件中当前位置
‘eof’或1
文件末尾
而函数feof函数,当到达文件末尾时,返回值为1,否则为0。
5、MAT文件
MAT文件时MATLAB使用的一种特有的二进制数据文件。可以包含一个或者多个MATLAB变量。提供了一种更简便的机制在不同操作平台之间移动MATLAB数据。
在MATLAB环境中,通常使用load和save两个命令进行MAT文件的读和写。在使用load是,也可以使用类如load mymat.mat y*来读取以y开头的变量。而在使用save时需要保存某几个变量时,可直接在后面写上变量名,用逗号隔开就行。
在普通的C/C++程序中读写MAT文件:
法一、利用MATLAB提供的有关MAT文件的编程接口函数,如:
matOpen
打开MAT文件
matClose
关闭MAT文件
matGetDir
从MAT文件中获得MATLAB阵列的列表
matGetFp
获得一个指向MAT文件的ANSI C文件指针
matGetVariable
从MAT文件中读取MATLAB阵列
matPutVariable
写MATLAB阵列到MAT文件
matGetNextVariable
从MAT文件中读取下一个MATLAB阵列
matDeleteVariable
从MAT文件中删去下一个MATLAB阵列
matPutVariableAsGlobal
从MATLAB阵列中写入到MAT文件中
matGetVariableInfo
从MAT文件中读取MATLAB阵列头信息
matGetNextVariableInfo
从MAT文件中读取下一个MATLAB阵列头信息
法二、根据MAT文件结构,以二进制格式在C/C++中读入文件内容,然后解析文件内容,从而获得文件中保存的MATLAB数据。在安装路径下有名为matfile_format.pdf的文件,可以得到MAT文件结构。具体后面会讲。- MATLAB混合编程中的数据交流
- linux系统中的C++/MATLAB混合编程
- VC&MATLAB混合编程
- VC++;Matlab;混合编程
- c# matlab混合编程
- matlab混合编程
- matlab混合编程向导
- Matlab混合编程
- MATLAB 混合编程
- Matlab C混合编程
- matlab混合编程
- matlab C混合编程
- matlab混合编程入门教程
- Matlab C混合编程
- matlab、C++混合编程
- MATLAB/c++混合编程
- C# matlab混合编程
- matlab/C 混合编程
- Spring MVC总结
- ColorMatrixFilter--颜色矩阵滤镜
- Android中获取正在运行的服务:ActivityManager.RunningServiceInfo的使用
- 0805封装尺寸/0402封装尺寸/0603封装尺寸/1206封装尺寸
- 何时调用构造函数,复制构造函数,析构函数
- MATLAB混合编程中的数据交流
- CommandEventArgs和 EventArgs有什么区别
- Android资源下载
- 不让三星、LG独美,夏普在IFA 2012推出新型IGZO屏幕
- 红尘依梦
- Linq对DataTable或者集合的排序,Where筛选,分组,统计总数sum等操作
- Eclipse和PyDev搭建完美Python开发环境(Windows篇)
- javase_08(基础面试题)
- java List 排序 Collections.sort() 对 List 排序