数据输入和输出 一、 概述 MATLAB 可读和写的文件格式: 文件格式 MATLAB 文本 XML Audio Movie Scientific data Spreadsheet Graphics Text 限定文本 逗号分隔的数值 XML-格式文本 t NeXT/SUN sound Microsoft WAVE sound Audio/video Data in Common Data Format Flexible Image Transport system data Data in Hierarchical Data Format Excel worksheet Lotus 123 worksheet TIFF/PNG/HDF/BMP/JPEG image GIF/PCX/XWD/Cursor/Icon image 文件内容 保存的 MATLAB 工作区 .mat 任意 任意 .csv .xml .au .mav .avi .cdf .fits .hdf .xls .wk1 .tiff .png .hdf .bmp .jpeg .gif .pcx .xwd .cur .ico 扩展名 读、写文件的函数 load,save textscan,textread dlmread,dlmwrite csvread,csvwrite xmlread,xmlwrite auread,auwrite mavread,mavwrite aviread cdfread,cdfwrite fitsread hdfread xlsread,xlswrite wk1read,wk1write imread,imwrite 二、 使用输入向导(Import Wizard) 从菜单 File->Import Data 打开 Import Wizard;或者命令窗口输入函数 uiimport。 从剪贴板开始 Import Wizard:Edit->Paste to workspace。 三、 保存和加载 MAT 文件 MAT 文件是双精度、二进制、MATLAB 格式的文件。 输出到 MAT 文件:save filename [var1 var2 …] [str*];可以通过[var1 var2 …]选择性保存 变量;也可以使用通配符“*” 。 查看 MAT 文件中的变量:whos –file 文件名。 存放结构数组的某个字段:加上“-struct”选项。 在已经存在的 MAT 文件上添加数据:-append 选项。 禁止压缩和 Unicode 字符编码文件,在 save 语句中加入“-v6”或者 File->Preferences-> General->MAT-Files->MAT-File save options->Ensure backward compatibility(-v6)。 save 语句默认 为数据压缩。 选择输出格式: “-ascii”“-tabs”“-double” 、 、 “-v4” 。 从 MAT 文件输入数据:load 函数。 四、 输入文本数据 各种输入函数的数据定界符: csvread fscanf textread 仅逗号 任何字符 任何字符 dlmread load textscan 任何字符(可指定) 仅空格 任何字符 详见:doc 函数名。 textscan 和 textread 性能比较:前者有更好的性能,特别是读大文件时;使用前者首先要 打开文件,最后要关闭文件,可从文件任意位置读;前者只输出一个单元数组,不必给每个 被读字段指定一个输出参数;前者有更多的数据转换选项和更多的用户设置选项。 五、 输出文本数据 ASCII 数据输出函数的特点: csvwrite fprintf save 仅逗号 任何字符 Tab 或空格 dlmwrite diary 任何字符(可指定) 仅空格 六、 输入/输出标准图像文件 imfinfo imwrite 得到有关图像的信息 输出图像数据 imread imshow、imview 输入图像数据 显示图像 七、 输入/输出音频和视频数据 aufinfo wavfinfo auread wavread wavwrite addframe 返回描述声音文件信息 返回描述声音(WAV)文件信息 从 AU 文件读入音频和视频数据 从 Microsoft WAVE 声音文件读 建立录音器对象 按 WAV 格式输出声音数据 获取图像序列 aviinfo mmfileinfo aviread movie auwrite avifile getframe 返回包含 AVI 文件信息的结构 通用的多媒体信息函数 从 AVI 文件读数据 播放录制的多帧影片 按 AU 格式输出数据 建立 avifile 对象 获取图片 audiorecorder 八、 输入/输出电子表数据 xlsfinfo xlsread wk1write 确定文件是否包含可读的 Excel 从一个 Excel 读入矩阵数据 矩阵输出到 Lotus 表格 xlswrite wk1finfo wk1read 将一个矩阵输出到 Excel 电子表格 确定一个文件是否包含 Lotus WK1 从 Lotus 123 读数据到 MATLAB 九、 低级文件输入/输出函数 fopen fwrite ftell fgetl fscanf fprintf 打开文件 写二进制数据 得到文件指针的位置 从文件读一行文本,丢弃换行符 从 ASCII 文件读数据 转换数据并将它们输出到文件或屏幕 fread fseek ferror fgets fclose 读二进制数据 重新设置文件指针的位置 查询文件输入/输出时的错误 从文件读一行,保留换行符 关闭文件