Matlab的数据导入和导出2

19 篇文章 0 订阅
11 篇文章 6 订阅

Matlab的数据导入和导出2

matlab的数据导出

MATLAB有多种数据输出函数可以选择,可以将数据导出到 Excel文件,特定分隔符的 ASCII 数据文件等等,
导出数字阵列作为分隔符的 ASCII 数据文件的方法有两种:

使用 save 函数及指定的 ASCII 限定符
使用 dlmwrite 函数

dlmwrite 函数的语法如下:

dlmwrite(‘my_data.out’, num_array, ‘dlm_char’)

导出成xls文件

前文介绍了xlsread函数,用于读取execl文件,对应的,matlab中写excel为xlswrite函数,同样的,xlswrite函数也有多种参数格式:

	xlswrite(filename,A):

将矩阵 A 中的数据写入 filename 指定的电子表格文件中的第一张工作表,从单元格 A1 开始写入。

	xlswrite(filename,A,sheet)

将矩阵 A 中的数据写入 filename 指定的电子表格文件中sheet指定的工作表。如果 sheet 不存在,xlswrite 将在工作表集合末尾添加一张新的工作表。

	xlswrite(filename,A,xlRange)
	xlswrite(filename,A,sheet,xlRange)

将矩阵 A 中的数据写入 filename 指定的excel文件中指定的区域内。参数定义和xlsread类似,在此不在赘述,下面给出一个例子:

status = xlswrite(filename,data,1,'A1');

将矩阵data的数据,写入filename文件的第1个sheet的A1中。

导出为ASCII分隔的文件

matlab中,导出ascii分割文件使用了dlmwrite,根据参数的不同,也有几种形式:

1.     dlmwrite(filename, M)

将矩阵M写入ASCII格式的文件filname中,分隔符为默认的 ('),数据是从第一行的第一列开始写的。

2.		dlmwrite(filename, M, 'D') 

将矩阵M写入ASCII格式的文件filname中,分隔符为D,数据是从第一行的第一列开始写的。使用\t来产生制表符分割的文件。

3.		dlmwrite(filename, M, 'D', R, C)

将矩阵M写入ASCII格式的文件filname中,分隔符为D,数据是从第R行的第C列开始写。

4.		dlmwrite(filename, M, 'attrib1', value1, 'attrib2', value2, ...) 

使用属性和属性值对来定义导出特性。每个属性后面必须跟一个相应的值。

属性值包括:

		 delimiter	 分隔符
		 newline	 行终止符,共两种,'pc'	 'pc'终结 或  'unix'	 'unix' 终结,对应不同的os。
		 roffset	      矩阵数据开始写的行,0开始			
		 coffset	     矩阵数据开始写的列,0开始
		 precision	 数值精度。指定有效位数,如'%10.5f'的数。
  1.  dlmwrite(filename, M, '-append') 
    

将矩阵数据追加到文件的末尾,前面的1到4,没有指定’‘-append’,所以,dlmwrite会覆盖文件中的任何现有数据。

  1. dlmwrite(filename, M, ‘-append’, attribute-value list)

相当于4和5参数类型的结合体,使用属性值对列表,同时采用添加的方式对filename进行写入。

导出自定义文件

和读文件对应,matlab也只是通过fopen和printf的方式进行文件读写,也支持sprintf函数格式化输出变量

打印格式和c语言的使用基本一致,主要有:

			%d 整数 
			%u 无符号十进制整数
			%i 有符号十进制数
			%e 实数:科学计算法形式 
			%f:不指定宽度,整数部分全部输出并输出6位小数。
			%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。 
			%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。
			%g 由系统自动选取上述两种格式之一 
			%s 输出字符串
			%o 无符号八进制整数
			%p 指针
			%x 使用十六进制数字0f的无符号十六进制整数

下面看一个例子:

% 建立一个2x10矩阵
x = 0:10:100;
y = [x; 2*x];

fid = fopen(‘test.txt’, ‘w’);
fprintf(fid, ‘%d %d \n’, y);
fclose(fid);

运行该文件,显示以下结果:

在这里插入图片描述

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyjbj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值