# MATLAB保存数据方法

Matlab 保存 for 循环下的数据
(2015-01-12 05:34:23)

for i=1:10 a=i%%加分号后有误，WHY?? eval(['save data',num2str(i)]) end 使用 eval 若 i 不为整数，改换 i 即可 上述为保存至分开的 mat 数据当中 如果要一次保存至一个 mat 当中，可以直接使用 save save ('filename','data1','data2','-ascii','-append') save ('filename.mat','data1','data2','-append') save(['file_',num2str(i),'.mat'],myvar) for i=1:10 a=i; F12=['FILE_',num2str(i),'.dat']; save(F12 ,'a'); end %%% succeed

Value of fmt

File Format

Value of fmt

File Format

'-mat' '-ascii' '-ascii','-tabs' '-ascii','-double' '-ascii','-double','-tabs'

Binary MAT-file format. Text format with 8 digits of precision. Tab-delimited text format with 8 digits of precision. Text format with 16 digits of precision. Tab-delimited text format with 16 digits of precision.

Ref: http://au.mathworks.com/help/matlab/ref/save.html?searchHighlight=save#b t0xgur-6

3.0000000e+000 6.0000000e+000 9.0000000e+000

3.0000000e+000 6.0000000e+000 9.0000000e+000

status = xlswrite(filename, ...) [status, message] = xlswrite(filename, ...) xlswrite filename M sheet range Description xlswrite(filename, M) writes matrix M to the Excel? file filename. The filename input is a string enclosed in single quotes. The input matrix M is an m-by-n numeric, character, or cell array, where m < 65536 and n < 256. The matrix data is written to the first worksheet in the file, starting at cell A1. example： Example 1 — Writing Numeric Data to the Default Worksheet Write a 7-element vector to Microsoft Excel file testdata.xls. By default, the data is written to cells A1 through G1 in the first worksheet in the file: xlswrite('testdata', [12.7 5.02 -98 63.9 0 -.2 56]) Example 2 — Writing Mixed Data to a Specific Worksheet This example writes the following mixed text and numeric data to the file tempdata.xls: d = {'Time', 'Temp'; 12 98; 13 99; 14 97}; Call xlswrite, specifying the worksheet labeled Temperatures, and the region within the worksheet to write the data to. The 4-by-2 matrix will be written to the rectangular region that starts at cell E1 in its upper left corner: s = xlswrite('tempdata.xls', d, 'Temperatures', 'E1') s= 1 The output status s shows that the write operation succeeded. The data appears as shown here in the output file: Time Temp 12 98 13 99 14 97 Example 3 — Appending a New Worksheet to the File Now write the same data to a worksheet that doesn't yet exist in tempdata.xls. In this case, MATLAB appends a new sheet to the workbook, calling it by the name you supplied in the sheets input argument, 'NewTemp'. MATLAB displays a warning indicating that it has added a new worksheet to the file: xlswrite('tempdata.xls', d, 'NewTemp', 'E1') Warning: Added specified worksheet. If you don't want to see these warnings, you can turn them off using the command indicated in the message above: warning off MATLAB:xlswrite:AddSheet Now try the command again, this time creating another new worksheet, NewTemp2. Although the message is not displayed this time, you can still retrieve it and its identifier from the

second output argument, m: [statmsg] = xlswrite('tempdata.xls', d, 'NewTemp2', 'E1'); msg msg = message: 'Added specified worksheet.' identifier: 'MATLAB:xlswrite:AddSheet'

● load filename X Y Z ...：将 filename 中的变量 X、Y、Z 等导入到工作区中，如果是 MAT 文 件，在指定变量时可以使用通配符“*” 。 ● load filename -regexp expr1 expr2 ...：通过正则表达式指定需要导入的变量。 ● load -ascii filename：无论输入文件名是否包含有扩展名，将其以 ASCII 格式导入；如果指 定的文件不是数字文本，则返回 error。 ● load -mat filename：无论输入文件名是否包含有扩展名，将其以 mat 格式导入；如果指 定的文件不是 MAT 文件，则返回 error。 例 13-1 将文件 matlab.map 中的变量导入到工作区中。 首先应用命令 whos–file 查看该文件中的内容： >>whos -file matlab.mat Name Size Bytes Class A 2x3 48 double array I_q 415x552x3 687240 uint8 array ans 1x3 24 double array num_of_cluster 1x1 8 double array Grand total is 687250 elements using 687320 bytes 将该文件中的变量导入到工作区中： >> load matlab.mat 该命令执行后，可以在工作区浏览器中看见这些变量，如图 13-1 所示。 图 13-1 导入变量后的工作区视图 接下来用户可以访问这些变量。 >>num_of_cluster num_of_cluster = 3 MATLAB 中，另一个导入数据的常用函数为 importdata，该函数的用法如下： ●importdata('filename')，将 filename 中的数据导入到工作区中； ● A = importdata('filename')，将 filename 中的数据导入到工作区中，并保存为变量 A； ●importdata('filename','delimiter')，将 filename 中的数据导入到工作区中，以 delimiter 指定 的符号作为分隔符； 例 13-2 从文件中导入数据。 >>imported_data = importdata('matlab.mat') imported_data = ans: [1.1813 1.0928 1.6534] A: [2x3 double] I_q: [415x552x3 uint8] num_of_cluster: 3 与 load 函数不同，importdata 将文件中的数据以结构体的方式导入到工作区中。 13.1.3 文件的打开 MATLAB 中可以使用 open 命令打开各种格式的文件， MATLAB 自动根据文件的扩展名选 择相应的编辑器。 需要注意的是 open('filename.mat')和 load('filename.mat')的不同，前者将 filename.mat 以结 构体的方式打开在工作区中， 后者将文件中的变量导入到工作区中， 如果需要访问其中的内 容，需要以不同的格式进行。

0.4565 0.0185 0.8214

0.4565 0.0185 0.8214

3 9 第二种情况： 对上面的命令做一下改动：# \n 换行改为\t，table 键 >>fid = fopen('b.txt','w'); fprintf(fid,'%g\t',a); fclose(fid); 然后用写字板打开 b.txt，内容如下：为行向量：

17 23 4 10 11 24 5 6 12 18 1 7 13 19 25 8 14 20 21 2 15 16 22 3 9 第三种情况： 综合上面的两个结果，我们编写以下命令：

fid=fopen('b.txt','wt');%写入文件路径 [m,n]=size(a); for i=1:1:m for j=1:1:n if j==n fprintf(fid,'%g\n',a(i,j)); else fprintf(fid,'%g\t',a(i,j)); end end end fclose(fid);

fid=fopen('C:\Documents and Settings\cleantotal.ped','wt');%写入文件路径 input_mattrix=[10 20 10 80 15;23 5 7 14 16 ;4 6 13 20 22 ;10 12 19 21 3 ;11 18 25 2 9 ]; matrix=input_mattrix [m,n]=size(matrix); for i=1:1:m for j=1:1:n if j==n fprintf(fid,'%g\n',matrix(i,j)); else fprintf(fid,'%g\t',matrix(i,j)); end end end fclose(fid); %input_matrix 为待输出矩阵

××××××××××××××××××××××××××××××××××××××× ×××××××××××××××××× 刚开始照着这个帖子写发现换行老是实现不了， 老是把换行符存成方格了。 后来发现原来是 文件打开的时候属性有问题，将其改成'wt'，也就是以文本方式就好了。 。 。 。 。 matlab 中 fopen 函数在指定文件打开的实例如下： *1)“fopen”打开文件，赋予文件代号。 语法 1：FID= FOPEN（filename,permission） 用指定的方式打开文件 FID=+N(N 是正整数)：表示文件打开成功，文件代号是 N. FID=-1 : 表示文件打开不成功。 FID 在此次文件关闭前总是有效的。 如以读方式打开，matlab 首先搜索工作目录，其次搜索 matlab 的其他目录， “permission” 是打开方式参数。 打开方式参数由以下字符串确定： r 读出 w 写入（文件若不存在，自动创建） a 后续写入（文件若不存在，自动创建） r+ 读出和写入（文件应已存在） w+ 重新刷新写入， （文件若不存在，自动创建） a+ 后续写入（文件若不存在，自动创建） ） w 重新写入，但不自动刷新 a 后续写入，但不自动刷新 文件的存储格式：文件打开的默认方式是：二进制。以文本方式打开，可以在方式参 数“permission”中加入“t”文件将，如“rt” ， “wt+” matlab 中 fprintf 函数的具体使用方法实例如下：

fprintf 函数可以将数据按指定格式写入到文本文件中。其调用格式为： 数据的格式化输出：fprintf(fid, format, variables) 按指定的格式将变量的值输出到屏幕或指定文件 fid 为文件句柄，若缺省，则输出到屏幕 1 for standard output (the screen) or 2 for standard error. If FID is omitted, output goes to the screen. format 用来指定数据输出时采用的格式 %d 整数 %e 实数：科学计算法形式 %f 实数：小数形式 %g 由系统自动选取上述两种格式之一 %s 输出字符串 fprintf（fid，format，A） 说明： fid 为文件句柄， 指定要写入数据的文件， format 是用来控制所写数据格式的格式符， 与 fscanf 函数相同，A 是用来存放数据的矩阵。 例 6.9 创建一个字符矩阵并存入磁盘，再读出赋值给另一个矩阵。 >> a='string'; >>fid=fopen('d:\char1.txt','w'); >>fprintf(fid,'%s',a); >>fclose(fid); >> fid1=fopen('d:\char1.txt','rt'); >> fid1=fopen('d:\char1.txt','rt'); >> b=fscanf(fid1,'%s') b= string matlab 读 txt 文件 fid=fopen('fx.txt','r'); %得到文件号 [f,count]=fscanf(fid,'%f %f',[12,90]); %把文件号 1 的数据读到 f 中。其中 f 是[12 90]的矩阵

%这里'%f %f'表示读取数据的形势，他是按原始数据型读出 fclose(fid); %关闭文件 另外有的 txt 文件还可以用 load 来打开 其语句为 f=load('fx.txt) 字符串操作函数 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 函数 eval 可以用来执行用字符串表示的表达式 函数 deblank 可以去掉字符串末尾的所有空格 函数 findstr 可以用来在长字符串中查找一个短的字符串，并返回相应的位置 函数 isstr 可以用来判断变量是否为字符串 函数 isletter 可以用来判断字符串中各个元素是否为字母 函数 isspace 可以用来判断字符串元素是否为空格符 函数 lower 和 upper 可以把字符串中的字母转为小写格式和大写格式 函数 strcat 可以把多个字符串在水平方向上依次连接起来 函数 strvcat 可以把多个字符串按竖直方向连接起来 函数 strcmp 可以用来进行字符串的比较，返回 1 或 0 函数 strcmpi 可以用来忽略英文字母的大小写方式比较字符串 函数 strncmp 可以用来比较字符串前 N 个字符是否相同 函数 strjust 可以用来调整字符串矩阵的对齐方式 函数 strmatch 可以用来寻找和目标字符串匹配的行 函数 strrep 可以实现字符串的查找和替代功能 函数 strtok 可以找出字符串第一个空格符前的字符串 函数 texlabel 可以把字符串转换成 tex 软件的格式

18. 不同进制间的转换，bin2hex，bin2dec（ ‘字符串’ ） ；dec2hex（数）=字符串；即十 进制数不为字符串，其它进制为字符串

19. 函数 bitget 可以用来获取二进制的数位 形数据 20. 函数 bitset 可以用来设定某个二进制数位的值 取反

C=bitget（A，bit） ，A 为一个无符号整

C=bitset（A，bit）指定数位的数值

C=bitset（A，bit，V）指定数位的 数值被 V 替换 21. 函数 bitand，bitor 和 bitxor 可以用来进行‘与’ ， ‘或’ ， ‘抑或’数位操作

matlab数据快捷保存
matlab数据快捷保存_理学_高等教育_教育专区。又做一个非常实用的 matlab 程序,虽然程序简短,但功能非常强 大,我将其全部功能及用法,规则,注意事项,小这样做的...
matlab中的数据导入和导出
Matlab 文件数据的导入与导出 Matlab 文件数据的导入与导出 在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存文 件MATLAB 使用多种格式...
MATLAB2014a导入excle数据的方法
MATLAB2014a导入excle数据的方法_计算机软件及应用_IT/计算机_专业资料。matlab...录入时注意行列要跟原矩阵一一对应 Step2 录入完以后保存数据,为了后续步骤使用...
Matlab数据导入方法
Matlab 数据导入方法 在编写一个程序时,经常需要从外部读入数据, 在编写一个程序时,经常需要从外部读入数据,或者将程序 运行的结果保存文件MATLAB 使用多种...
matlab导出数据(fprintf,dlmwrite,xlswrite)
matlab导出数据(fprintf,dlmwrite,xlswrite)_电脑基础知识_IT/计算机_专业资料。...使用方法: dlmwrite('filename', M) 使用默认分隔符“,”将矩阵 M 写入文本...
matlab导出数据(fprintf,dlmwrite,xlswrite)
matlab导出数据(fprintf,dlmwrite,xlswrite)_工学_高等教育_教育专区。matlab导出数据...使用方法: dlmwrite('filename', M) dlmwrite 使用默认分隔符“,”将矩阵 M ...
Matlab数据处理与分析
Matlab数据处理与分析_数学_自然科学_专业资料。前 言 MATLAB 一直是国际科学界...%输入的矩阵保存在变量 B 中 B= -1 1 0 2 A .*B %以数组方式相乘, ...
matlab文件的导入导出
matlab文件的导入导出_计算机软件及应用_IT/计算机_专业资料。GprMaxV2.0 中 ...(2)GprMax 3D 的界面和运行方法跟 GprMax Matlab 处理文件: name = 'second....

matlab中的数据导入和导出
matlab 中的数据导入和导出 Matlab 提供了从磁盘文件或剪贴簿转载数据至工作区(数据导入)和将工作区 变量存入磁盘文件(数据导出)的多种途径。 最简单的办法是使用...