MATLAB数据输入和输出 C语言转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据输入和输出
一、概述
MATLAB可读和写的文件格式:
文件格式文件内容扩展名读、写文件的函数MATLAB 保存的MA TLAB工作区.mat load,save
文本Text 任意textscan,textread 限定文本任意dlmread,dlmwrite 逗号分隔的数值.csv csvread,csvwrite
XML XML-格式文本t .xml xmlread,xmlwrite
Audio NeXT/SUN sound .au auread,auwrite Microsoft WA VE sound .mav mavread,mavwrite
Movie Audio/video .avi aviread
Scientific data Data in Common Data Format .cdf cdfread,cdfwrite Flexible Image Transport system data .fits fitsread
Data in Hierarchical Data Format .hdf hdfread
Spreadsheet Excel worksheet .xls xlsread,xlswrite Lotus 123 worksheet .wk1 wk1read,wk1write
Graphics TIFF/PNG/HDF/BMP/JPEG image
GIF/PCX/XWD/Cursor/Icon image
.tiff .png .hdf .bmp .jpeg
.gif .pcx .xwd .cur .ico
imread,imwrite
二、使用输入向导(Import Wizard)
从菜单File->Import Data打开Import Wizard;或者命令窗口输入函数uiimport。
从剪贴板开始Import Wizard:Edit->Paste to workspace。
三、保存和加载MAT文件
MAT文件是双精度、二进制、MATLAB格式的文件。
输出到MA T文件:save filename [var1 var2 …] [str*];可以通过[var1 var2 …]选择性保存变量;也可以使用通配符“*”。
查看MAT文件中的变量:whos –file 文件名。
存放结构数组的某个字段:加上“-struct”选项。
在已经存在的MAT文件上添加数据:-append选项。
禁止压缩和Unicode字符编码文件,在save语句中加入“-v6”或者File->Preferences-> General->MA T-Files->MAT-File save options->Ensure backward compatibility(-v6)。save语句默认为数据压缩。
选择输出格式:“-ascii”、“-tabs”、“-double”“-v4”。
从MA T文件输入数据:load函数。
四、输入文本数据
各种输入函数的数据定界符:
csvread 仅逗号dlmread 任何字符(可指定)fscanf 任何字符load 仅空格
textread 任何字符textscan 任何字符详见:doc 函数名。
textscan和textread性能比较:前者有更好的性能,特别是读大文件时;使用前者首先要
打开文件,最后要关闭文件,可从文件任意位置读;前者只输出一个单元数组,不必给每个被读字段指定一个输出参数;前者有更多的数据转换选项和更多的用户设置选项。
五、输出文本数据
ASCII数据输出函数的特点:
csvwrite 仅逗号dlmwrite 任何字符(可指定)fprintf 任何字符diary 仅空格
save Tab或空格
六、输入/输出标准图像文件
imfinfo 得到有关图像的信息imread 输入图像数据imwrite 输出图像数据imshow、imview 显示图像
七、输入/输出音频和视频数据
aufinfo 返回描述声音文件信息aviinfo 返回包含A VI文件信息的结构wavfinfo 返回描述声音(W A V)文件信息mmfileinfo 通用的多媒体信息函数auread 从AU文件读入音频和视频数据aviread 从A VI文件读数据
wavread 从Microsoft WA VE声音文件读movie 播放录制的多帧影片audiorecorder 建立录音器对象auwrite 按AU格式输出数据wavwrite 按W A V格式输出声音数据avifile 建立avifile对象
addframe 获取图像序列getframe 获取图片
八、输入/输出电子表数据
xlsfinfo 确定文件是否包含可读的Excel xlswrite 将一个矩阵输出到Excel电子表格xlsread 从一个Excel读入矩阵数据wk1finfo 确定一个文件是否包含Lotus WK1 wk1write 矩阵输出到Lotus表格wk1read 从Lotus 123读数据到MA TLAB
九、低级文件输入/输出函数
fopen 打开文件fread 读二进制数据
fwrite 写二进制数据fseek 重新设置文件指针的位置
ftell 得到文件指针的位置ferror 查询文件输入/输出时的错误
fgetl 从文件读一行文本,丢弃换行符fgets 从文件读一行,保留换行符fscanf 从ASCII文件读数据fclose 关闭文件
fprintf 转换数据并将它们输出到文件或屏幕
Matlab 转换为C语言
6.1版本的Matlab软件包中提供了C/C++的数学和图形库,通过其编译器支持可以将Matlab中编写的m文件转换成以C/C++代码的文件,而且可以将m文件生成dll库,甚至我们可以直接调用其中的库函数,生成并发布不必依赖Matlab的可执行文件。通过mcc编译器生成C/C++代码,进而可以在VC或者其它编译器生成可独立执行的应用程序。
下面具体讨论如何利用Matlab编译器从m文件生成C/C++代码,并嵌入用户代码,生成运行时不需Matlab支持的应用程序。设matsum.m文件,内容如下:
function sum = matbs( a, b )