MATLAB 您所在的位置:网站首页 matlab读取ascii文件 MATLAB

MATLAB

2024-03-27 22:11| 来源: 网络整理| 查看: 265

1.读写*.txt格式文件 (1)写入文本:save()函数

常用语句为:save(filename,Data,'-ascii')

其中:filename表示文件名称;Data表示待写入的变量;'-ascii'表示保存文件的格式为ASCII文件,不添加此项容易导致文本乱码。

clc;clear all; A = magic(3); B = ones(10); save('ydata1.txt','A','-ascii');     % 存储数据到ydata1.txt中 save('ydata1.txt','B','-append','-ascii');  % 将变量B添加到ydata1.txt中

利用该函数写入文本的数字是由科学计数法表示的,并且自动保存为8位精度。

(2)打开文本:fopen()函数

常用语句(1)为:fid = fopen(filename)

常用语句(2)为:fid = fopen(filename,'permission')

其中:fid表示文件句柄;filename表示文件名称;permisson表示打开方式的参数,默认的打开方式是只读模式。

permission可选项如下表所示:

可选项含义可选项含义'r'只读'w+'重新刷新写入(文件若不存在,自动创建)'w'写入(文件若不存在,自动创建)'a+'文件后增写(文件若不存在,自动创建)'a'文件后增写(文件若不存在,自动创建)'A'文件后增写,而不会自动刷新当前输出缓冲区'r+'读出和写入(已有文件)'W'写入,而不会自动刷新当前输出缓冲区 (3)写入文本:fprintf()函数

常用语句(1)为:fprintf(fid, formatSpec, A1, ..., An)

常用语句(2)为:fprintf(formatSpec, A1, ..., An)

其中:fid表示文件句柄;formatSpec表示数据输出时采用的格式;A1至An表示待写入的数据。

formatSpec对应的格式化操作符以百分号%开头,以转换字符结尾(不可省略),中间可以加入指定标识符、标志、字段宽度、精度和子类型操作符,如图1.1所示。

图1.1 格式化操作符示例

常用的转换字符包括:

转换字符含义转换字符含义%d整数%e浮点数,科学计数法形式%f浮点数,小数形式%g更紧凑的%e和%f,末尾不带0%c单个字符%s字符串 标识符

处理函数输入参数的顺序。使用n$,其中 n 代表函数调用中其他输入参数的位置。

例:('%3$s %1$s %2$s %3$s', 'A', 'B', 'C') 表示将字符串'A', 'B', 'C' 按照 C A B C的顺序输出。

注意:如果输入参数为数组,则不能使用标识符指定该输入参数中的特定数组元素。

常用标志 标志含义'-'

左对齐

例:%-4.3f

'+'

(1)添加符号 "+" 或 "-" ;(2)右对齐文本

例:%+4.3f , %+5s

' '

在值之前插入空格

例:% 4.3f

'0'

在值之前补充0使之满足字段宽度

例:% 4.3f

字段宽度

要输出的最少字符数,除非标志另行指定,否则默认使用空格填充值之前的字段宽度。

精度

类别含义对于%f、%e和%E

小数点右侧的位数

例:%.4f 可表示为将π输出为"3.1416"

对于%g、%G

有效位数

例:%.4g 可表示为将π输出为"3.142"

子类型

使用子类型操作符将浮点值显示为八进制、十进制或十六进制值。

在格式化操作符的 % 前或者转化字符后可以添加其他文本,一些特殊字符表示如下表所示:

特殊字符表征形式特殊字符表征形式单引号''百分号%%反斜杠\\警报\a退格符\b换页符\f换行符\n回车符\r水平制表符\t垂直制表符\v clc;clear all; A1 = [10.3 3.1415 2.89]; A2 = [3.14159 2.89]; A3 = [34.2]; A4 = 'study'; fid = fopen('moon.txt','w'); % 打开文件并写入 fprintf(fid,'%d %d %d\n',round(A1)); % 保存整数,\n表示新起一行的控制符 fprintf(fid,'%4.3f %.4f\n',A2); % %4.3f表示字段宽度为4位数,包括小数点后的3位数 % %.4f表示保留4位小数 fclose(fid); % 关闭文件 fid = fopen('moon.txt','a'); % 打开文件并在文档末尾增写 fprintf(fid,'%.3e\n',A3); % %.3e表示保留3位小数,并以科学计数法形式保存 fprintf(fid,'%s\n',A4); % 保存字符串 fclose(fid); 图1.2 仿真结果

 

2.读写*.xlsx格式文件 (1)写入excel文件:xlswrite()函数

常用语句为:xlswrite(filename,Data,sheet,Range)

其中:filename表示文件名称;Data表示待写入的数据、文本;sheet表示写入excel中的工作表标签,该参数缺省时,默认为Sheet1;Range表示工作表中的指定区域,该参数缺省时,默认为A1。

clc;clear all; filename = 'study.xlsx'; Data1 = [1,2,3;6,5,4;7,8,9]; % 都是数字的矩阵 Data2 = {1,2,3;'a','b','c';7,'d',9}; % 包括数字和文本的元胞数组 headers = {'AAA','BBB','CCC'}; % 都是文本的元胞数组 xlswrite(filename,Data1,1,'A1'); % 将矩阵Data1存储到study.xlsx中的第一个工作表(默认为Sheet1)A1位置,如果不存在study.xlsx文件,则创建该文件 xlswrite(filename,Data2,2,'A2'); % 将元胞数组Data2存储到study.xlsx中的第二个工作表 xlswrite(filename,[headers;Data2],'demo','A1:C4'); % 将数据存储到study.xlsx中的名为demo的工作表A1:C4位置;如果是A1:B4区域,则舍弃原数据的第三列 for i = 1:3 xlswrite(filename,Data1(i,:),1,['D',num2str(2*i-1)]); % 有规律的写入工作表中 end 图2.1 仿真结果

小提示:如果该文件处于打开状态,那么MTALAB无法完成写入命令,因此需要提前关闭该文件。

(2)读取excel文件:xlsread()函数

常用语句(1)为:num = xlsread(filename, sheet, Range);

常用语句(2)为:[num, txt, raw] = xlsread(filename, sheet, Range);

其中:num表示输出的数组;txt表示输出的文本;raw表示输出的元胞数组;filename表示文件名称;sheet表示读取excel中的工作表标签;Range表示工作表中的指定区域,该参数缺省时,默认为当前工作表中的全部数据。

clc;clear all; filename = 'study.xlsx'; num1 = xlsread(filename,1,'A1:C3'); % 读取study.xlsx中的第一个工作表A1:C3区域 num2 = xlsread(filename,1,'A:A'); % 读取study.xlsx中的第一个工作表第A列数据 num3 = xlsread(filename,2); % 读取study.xlsx中的第二个工作表,默认为全部数据,由于其中存在文本,因此表示为'NaN' [num4,txt,raw] = xlsread(filename,'demo'); % 读取study.xlsx中的全部数据,包括文本 num5 = xlsread(filename,-1); % MATLAB自动打开study.xlsx,由用户自己选择所需数据

 仿真结果:

>> num1 = 1 2 3 6 5 4 7 8 9 >> num2 = 1 6 7 >> num3 = 1 2 3 NaN NaN NaN 7 NaN 9 >> num4 = 1 2 3 NaN NaN NaN 7 NaN 9 >> txt = 4×3 cell 数组 {'AAA'} {'BBB'} {'CCC'} {0×0 char} {0×0 char} {0×0 char} {'a'} {'b'} {'c'} {0×0 char} {'d'} {0×0 char} >> raw = 4×3 cell 数组 {'AAA'} {'BBB'} {'CCC'} {[1]} {[2]} {[3]} {'a'} {'b'} {'c'} {[7]} {'d'} {[9]} 图2.2 数据选择对话框 (3)查看excel文件:xlsfinfo()函数

常用语句为:[Type, SheetName, Format] = xlsfinfo(filename)

其中:Type 是用于确认filename是否为xlsread函数可读的文件,为字符向量;SheetName为1行n列的元胞数组,每个元胞数组为工作表的名称;Format为字符向量,返回Excel有关文件格式的说明。

 

3.读写*.mat格式文件 (1)写入*.mat格式文件:save()函数

常用语句(1)为:save(filename,Data)

常用语句(2)为:save(filename,Data,'-append')

其中:filename表示文件名称;Data表示待写入的变量;'-append'表示将变量Data添加到*.mat文件中。

clc;clear all; A = magic(3); B = ones(10); save('ydata1.mat','A','B'); % 函数格式存储数据 save ydata2.mat A B % 命令格式存储数据,没有括号、单引号 C = zeros(6); save('ydata1.mat','C','-append'); % 将变量C添加到ydata1.mat中 (2)读取*.mat格式文件:load()函数

常用语句(1)为:load(filename)

常用语句(2)为:load(filename,Data)

语句(2)表示读取名为filename的*.mat文件中的Data变量。

clc;clear all; load('ydata1.mat'); % 函数格式读取*.mat文件 load ydata1.mat % 命令格式读取*.mat文件,没有括号、单引号 load('ydata1.mat','C'); % 读取ydata1.mat中的变量C load ydata1.mat C % 命令格式读取ydata1.mat中的变量C


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有