matlab 和 excel 数据的导入导出 [李园7舍_404]

matlab版本:7.9.0(R2009)
 

1 将excel中的数据导入到matlab中

        将excel中 的数据导入到matlab中采用matlab库函数xlsread

(1)C=xlsread('filename.xls')

(2)C=xlsread('filename.xls',‘ range’),表示读取excel的range范围,range的范围是如下定义:

这个数据的整个区域用标红的框的地址表示即E2:O12

(3)xlsread('filename.xls', ‘sheet’, ‘range’);

sheet对应excel的地方如下图标红的地方:

 

在matlab中处理此语句后就将表中对应的数据返回给C,并以矩阵的形式呈现。即使用xlsread函数可以导入excel中的任意区域、任意单元的数据到matlab中用矩阵存储,然后矩阵就可以着代码处理了。为了减少路径的书写,可以将excel表格拉入matlab的当前目录下。然后就可以将excel表的名字直接作为xlsread的参数了。并将excel中的数据作为矩阵返回给C。当然了,我得提示我,要进一步的应用xlsread还得参看matlab 的help。

 

2 将matlab中处理过的数据导入到excel表格中

将matlab中的数据导入excel表采用xlswrite函数。采用最简单的参数将数据导入到当前目录下,如果参数中excel表格不存在则自动生成响应的excel表格。它的用法和xlsread函数对应。

(1) xlswrite('filename.xls', data)将data导入到filename.xls表中,从头开始写入data数据。

如xlswrite('matrix.xls', data),data=[1 2 3; 4 5 6],则matrix.xls表的最开始两行将被写入data这两行数据。

 

(2) xlswrite('filename.xls', data, ‘range’)。range表示将data导出道excel表的区域,有区域的对角值表示区域。

如xlswrite(‘matrix.xls', data, ‘A12:J29’)则matrix.xls表中的A12:J29’区域将被填写data的数据。

 

(3) xlswrite('filename.xls', data, ‘sheet‘, ’range‘)。sheet表示将data数据写在excel的哪个表格里面。剩余的单元被赋予控制没看起来像乱码的样子。

如xlswrite(‘matrix.xls', data,’sheet2‘ , ‘A12:J29’)则matrix.xls的sheet2单元的A12:J29单元将被充满数据。

如果sheet名不存在,则在matrix.xls中新建这么一个单元然后将数据天禧恩啊哦对应的位置。

 

3 编写一个m-function 关于matlab和excel的数据导入导出

%This file shold be changed when read different data
%I shold have coded it in m-function mode
function [A, d] = loda_down_data(sheet, range, number)

	%load excel datastructre
	C=xlsread('FiveYears.xlsx',sheet, range);
	C=C';
	%compute martix A
	r=length(C);
    
    	for i=1:1:r
        	for j=1:1:r
            		A(i, j) = C(1, i) / C(1, j);
        	end
    	end
    	
   	xlswrite('result1.xlsx', A, number, 'E2:O12');
    	%Compute vector and roots
    	%v is vector,d is roots
    	[v, d] = eig(A);
    	[x,y]=find(d==max(d(:)));
   	xlswrite('result.xlsx', d(x, y),number, 'B13');
    	B=v;
    	[R, W]=size(B);

    	xlswrite('result.xlsx', A/sum(A), number, 'B14:B24');
end



然后在命令窗口中输入

>> loda_down_data('2007', 'E2:L12', '9');回车

就可以将名为FiveYears.xlsx(也可以将文件名作为输入参数)中的2007单元的E2到L12单元的数据读入到matlab中了,经过处理后就将数据读入到result.xlsx中(也可以将输出文件作为参数传入)的第9个单元中的指定区域了。

 

 

此次笔记记录完毕。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值