文档库 最新最全的文档下载
当前位置:文档库 › 用MATLAB程序检索excel表格数据代码

用MATLAB程序检索excel表格数据代码

用MATLAB程序检索excel表格数据代码
用MATLAB程序检索excel表格数据代码

clc

%% 添加变量

a=[];b=[];c=[];d=[];

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %

%选择存储变量列表的excel表格

[filename1,pathname1] =uigetfile({'*.xlsx';'*.xls'},'Select the Data Dictionary');

if isequal(filename1,0)

disp('User selected Cancel')

return

else

disp(['User selected ', fullfile(pathname1, filename1)])

end

cd(pathname1);

SheetBegin1=1; %起始sheet的序号

SheetEnd1=1; %终止sheet的序号

%从起始sheet开始读取excel数据,并存入ad中用于创建datafile

for n1=SheetBegin1:1:SheetEnd1

[a1,b1,c1]=xlsread(filename1,n1);

if(n1<=SheetBegin1)

ad1=c1;

else

c1=c1(2:end,:);

ad1=[ad1;c1];

end

DataAttribute1=ad1(2:end,:); %ad第二行开始每一行是一个变量的各个属性设置

[ObNum1,~]=size(DataAttribute1); %变量个数

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%

%选择搜索变量列表的excel表格

[filename2,pathname2] =uigetfile({'*.xlsx';'*.xls'},'Select the Data Dictionary');

if isequal(filename2,0)

disp('User selected Cancel')

return

else

disp(['User selected ', fullfile(pathname2, filename2)])

end

cd(pathname2);

SheetBegin2=1; %起始sheet的序号

SheetEnd2=1; %终止sheet的序号

%从起始sheet开始读取excel数据,并存入ad中用于创建datafile

for n2=SheetBegin2:1:SheetEnd2

[a2,b2,c2]=xlsread(filename2,n2);

if(n2<=SheetBegin2)

ad2=c2;

else

c2=c2(2:end,:);

ad2=[ad2;c2];

end

end

DataAttribute2=ad2(2:end,:); %ad第二行开始每一行是一个变量的各个属性设置

[ObNum2,~]=size(DataAttribute2); %变量个数

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%5

%%% a=[];

for j=ObNum2:-1:1

for i=ObNum1:-1:1

choice1=DataAttribute1{i,1};

choice2=DataAttribute2{j,1};

if strfind(choice1,choice2)

a=[a;{choice2}];

end

end

j=j

end

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%去除重复项

%%% b=[];

[ObNum_a,~]=size(a); %变量个数

for i=1:ObNum_a-1

choice1=a{i,1};

choice2=a{i+1,1};

if strfind(choice1,choice2)

else

b=[b;{choice1}];

end

end

b=[b;a{ObNum_a,1}];

%% %%生成搜索结果表格

xlswrite('结果表格.xlsx',b); %文件名

%% %%%%%%%%%%%% 生成未搜索到结果表格%%% c=[];d=[];

[ObNum_b,~]=size(b);

for i=ObNum_b:-1:1

for j=ObNum2:-1:1

choice1=b{i,1};

choice2=DataAttribute2{j,1};

if strfind(choice1,choice2)

c=[c;j];

end

end

end

j=1;

[ObNum_c,~]=size(c);

for i=1:1:ObNum2

e=c(j,1);

if i==e

j=j+1;

if j==ObNum_c+1

break;

end

else

d=[d;{DataAttribute2{i,1}}];

end

end

xlswrite('无结果表格.xlsx',d); %文件名%%

MATLAB访问excel

MATLAB访问excel

MATLAB作为自动化客户端调用Excel服务器编程项目中最后的功能——打印报告,最终确定使用ActiveX方式访问office,这个应该称之为OLE(对象链接与嵌入)方法。通过MATLAB 调用Excel服务器,可以完成一些非数据对象的交互,比如图片。 在这里演示一下MATLAB与Excel交互的整体过程,当然这里不是报告的内容,这个属于项目的资料了。这里通过简单的图片来表示,实际要做的时候,步骤和这个基本一致,只是过程麻烦些,每一个图片都要调整,然后数据内容调整,单元格格式等等: 先看一下示意的效果:

1.MATLAB打开自动化方法 使用actxserver函数。如下: he = actxserver('Excel.Application'); 上述语句创建excel服务器,句柄值为he,通过he可以访问excel服务器的属性和方法。 在使用中为了方便存储,可以设置默认路径,使用excel服务器的DefaultFilePath属性:

he.DefaultFilePath = 'E:\'; 调试中为了方便观看excel文件内容,可以设置excel服务器的Visible属性,实际调试时可以改为1,调试过后改为0即可: he.Visible = 1; 2.创建工作簿方法 通过excel服务器的属性Workbooks创建工作簿句柄,通过该句柄的方法Add 创建工作簿: hw = he.Workbooks.Add; 然后,继续通过hw的Worksheets属性建立Sheets类句柄: hs = hw.Worksheets; 访问某一sheet的方法即用sheets的Item方法: sheetItem = hs.Item(1); 上面即建立的sheet类句柄,可以通过该句柄访问单一sheet。 3.生成带有图形的Excel,主要是figure位置和格式,粘贴时只能选择单元格,需要精细修饰就要使用下面的方法了。

Matlab 如何读取 Excel 表格数据

? 上一篇: 在VC++程序中输出空心文字下一篇: My ANN program ? Matlab 如何读取 Excel 表格数据 Cyberr @ 2005-03-31 12:44 Subject: Are there any examples that show how to use the ActiveX automation interface to connect MATLAB to Excel? Problem Description I am trying to control Excel from MATLAB using ActiveX. Are there any examples that show how to use the ActiveX automation interface from Excel to do this? Solution: Most of the functionality that you get from ActiveX is dependent on the object model, which the external application implements. Consequently, we are usually unable tp provide much information about the functions that you need to use in the remote application to perform a particular function. We do, however, have an example that shows how to do perform common functions in Excel. We also recommend that you become more familiar with the Excel object model in order to better use Excel's ActiveX automation interface from MATLAB. You can find more information on this interface by selecting the "Microsoft Excel Visual Basic Reference" topic in the Microsoft Excel Help Topic dialog. This topic area contains a searchable description of Excel methods and properties. The following example demonstrates how to insert MATLAB data into Excel. It also shows how to extract some data from Excel into MATLAB. For more information, refer to the individual comments for each code segment. % Open Excel, add workbook, change active worksheet, % get/put array, save, and close % First open an Excel Server Excel = actxserver('Excel.Application'); set(Excel, 'Visible', 1); % Insert a new workbook

Matlab中使用Excel数据

Matlab中使用Excel資料收藏 % Open Excel, add workbook, change active worksheet, % get/put array, save, and close % First open an Excel Server %打開一個Excel操作物件 Excel = actxserver('Excel.Application'); %使Excel物件可見,即打開Excel視窗,實際應用時設置其為不可見的set(Excel, 'Visible', 1); % Insert a new workbook %創建工作本組物件 Workbooks = Excel.Workbooks; %添加一個工作本 Workbook = invoke(Workbooks, 'Add'); % Make the second sheet active %獲取當前活躍工作本的表單組,一個工作本共有3個表單(sheets)Sheets = Excel.ActiveWorkBook.Sheets; %獲取表單組中的一個表單 sheet2 = get(Sheets, 'Item', 2); %啟動該表單 invoke(sheet2, 'Activate'); % Get a handle to the active sheet %獲取當前活躍表單的控制碼 Activesheet = Excel.Activesheet; % Put a MATLAB array into Excel %向表單中寫入資料 A = [1 2; 3 4]; %設置寫到Excel中的範圍 ActivesheetRange = get(Activesheet,'Range','A1:B2'); %寫入 set(ActivesheetRange, 'Value', A); % Get back a range. It will be a cell array, % since the cell range can % contain different types of data. %讀會資料塊 Range = get(Activesheet, 'Range', 'A1:B2');

matlab利用excellink达到在excel中直接画图

matlab excel混合编程MATLAB与 Excel数据连接及绘图 3.1 MATLAB与Excel数据连接 EXCEL和MATLAB在数据显示和数值计算上各有优势,EXCEL是商业运用最广泛的工具,非常直观,但是数值编程比较差,而MA TLAB可以弥补这一点,有时在程序开发上需要将两者结合起来,实现两者之间的优势互补,为此MATLAB提供了EXCEL Link连接工具,实现MA TLAB与EXCEL之间的混合编程。 EXCEL Link是一个在Microsoft Windows环境下实现对Microsoft EXCEL和MATLAB 进行链接的插件。通过对EXCEL和MATLAB 的连接,用户可以在EXCEL的工作空间里,利用EXCEL的宏编程工具,使用MATLAB的数据处理和图形处理功能进行相关操作,同时由EXCEL Link来保证两个工作环境中数据的交换和同步更新。使用EXCEL Link 时,不必脱离EXCEL环境,而是直接在EXCEL工作区或宏操作中调用MATLAB函数。 EXCEL Link允许在MATLAB和EXCEL之间进行数据交换,在两个功能强大的数学处理、分析与表示平台之间建立无缝连接。EXCEL作为一个可视化的数据处理环境是进行数组编辑的最佳选择,而MA TLAB则作为数据分析和可视化的引擎。任何输入到EXCEL环境中的数据都可以直接进入MTA TLAB进行处理,而这一过程完全是“现场”处理的,没有任何中间文件,也不需要进行编程工作。

3.1.1 MATLAB和Excel的接口安装:. Excel Link的安装和和设置 首先,在系统中安装Excel软件。然后安装Matlab和Excel Link,用Matlab安装盘开始安装,选择自定义安装中,在选中组件ExcelLink,如下图所示: 安装完Excel Link后还需要在Excel中进行一些设置后才能使用。 启动Excel,选择菜单“工具”项下的“加载宏”项,弹出如下对话框:

excel中的数据导入matlab中

用Excel Link实现Excel与Matlab混合编程 Excel Link是一个在Windows环境下实现Excel与Matlab进行链接的插件。通过连接Excel 和Matlab,用户可以在Excel工作表空间和宏编程工具中使用Matlab的数值计算,图形处理等功能,不需要脱离Excel环境。同时由Excel Link来保证两个工作环境中的数据交换和同步更新。 1. Excel Link的安装和和设置首先,在系统中安装Excel软件。然后安装Matlab和Excel Link,用Matlab安装盘开始安装,选择自定义安装中,在选中组件ExcelLink,如下图所示:安装完Excel Link后还需要在Excel中进行一些设置后才能使用。启动Excel,选择菜单“工具”项下的“加载宏”项,弹出如下对话框:选中Excel Link项。如果该项不存在,则通过浏览目录,在目录%MATLAB%toolboxexlink下找到excllink.xla文件,如下图示,并确定。选中ExcelLink项并确定后,在Excel中多了一个Excel Link工具条,如下图示: 经过以上的设置后就可以开始使用Excel Link了。 2. ExcelLink连接管理函数 (1) Matlabinit 该函数只能在宏子例程中使用。初始化ExcelLink和启动Matlab进程。只有在MLAutoStart 函数中使用“no”参数,才需要手动使用Matlabinit来初始化ExcelLink和启动Matlab进程,如果使用参数“yes”,则Matlabinit是自动执行的。 使用语法:Matlabinit (2) MLAutoStart 设置自动启动Matlab和ExcelLink。 在工作表中的使用语法: MLAutoStart("yes") MLAutoStart("no") 在宏中的使用语法: MLAutoStart "yes" MLAutoStart "no" 使用“yes”参数,则当Excel启动时,自动启动Matlab和ExcelLink;如果使用参数“no”,则当Excel启动时,不启动Matlab和ExcelLink。如果在此之前它们已经启动,则无任何影响。 (3) MLClose 终止Matlab进程并删除Matlab工作空间的所有变量。并通知Excel,Matlab不再运行。 在工作表中的使用语法: MLClose() 在宏中的使用语法: MLClose (4) MLOpen 启动Matlab进程。如果Matlab进程已经启动,则MLOpen函数不进行任何操作。在使用MLClose关闭Matlab进程后使用MLOpen来重新启动Matlab。 在工作表中的使用语法: MLOpen() 在宏中的使用语法: MLOpen

matlab 如何将符合特定条件的数据导入excel并求出平均值

% outline %step_1 clear %step_2 CurrentWorkingPaht %step_3 a Matrix_r %step_4 Loop getting the 20 close and far values %step_5 writing the Matrix_r into the Excel % clear clc;clear; % currentworkingpath CurrentWorkingPath = fileparts(mfilename('fullpath')); Filename_result = ['result_selectionA_1.txt']; % set a Matrix_r Matrix_r = zeros(20,2); for i = 1:20 tmpPathname = sprintf('%s\\sub%d\\%s',CurrentWorkingPath,i,Filename_result); [Col_1 Col_2 Col_3 Col_4 Col_5 Array_type Array_RTs Array_ACC] = textread(tmpPathname, '%d%d%d%d%d%d%d%d', 'delimiter', ' '); doubleC_Mat = [Array_type Array_RTs]; Matrix_r(i,1) = mean(doubleC_Mat(doubleC_Mat(:,1)<=12,2)); Matrix_r(i,2) = mean(doubleC_Mat(doubleC_Mat(:,1)>12,2)); end % writing into the excel file success = xlswrite('student_update.xls', Matrix_r,'sheet1', 'B2'); Series = 1:20; Series = Series';

matlab读取excel数据

matlab读取excel office的表格文件也就是xls文件本质上就是一个二维矩阵,二维矩阵是用来保存数据的最佳方式,所以在日常工作中,我们从其它地方获取的数据通常都被保存为xls格式,但处理数据时,我们却需要把xls文件的数据导入到matlab里进行处理。 如果你只处理一个文件并且只做一次的话,你可以手动来拷贝粘贴,这花费不了你太多时间。如果有很多xls文件,或者你的xls文件的内容可能随时被修改,那么下面的方法可以派上用场。 matlab自身提供了大量的函数,包括读取office文件。其中xlsread和xlswrite就是专门用来读取xls文件里的数据的。这两个函数的使用方法可以直接查看matlab自带的帮助。 xlsread对于纯数据的xls文件支持很完美,也就是说当xls文件里的每个格子都是“数”时,xlsread会直接返回一个实数矩阵。但是通常我们拿到xls文件并不是这样,它的表头多半是描述性文字,它的数据也有可能是文字,有些位置的数据还有可能是缺失的。xlsread 对这样的文件读取无能为力,或者说需要大量的时间去协调数据的位置信息。要是有一个函数,能够按照原有的顺序直接读取所有的单位格数据就好了。当然,这时候返回的矩阵就不能是一个数值矩阵了,它将会是一个cell矩阵,里面的每个元素类型可能不一样。 matlab本身并不提供这个功能,但是另外有一个函数officedoc完美的实现这个功能。这个函数包可以去OfficeDoc官方网站上去下载,解压缩后放到工作路径上即可。使用方法可以查询help officedoc。officedoc是收费函数包,但有免费版本,而且其免费版本可以实现上面我们所说的效果(收费版本主要是可以用来修改office文件)。 例子: 在matlab中读取xls格式的文件内容如应用如下函数: 1.bb=xlsread('c:feature.xls','a0:an40'),其中:c:feature.xls为文件存放的地址,a0:a40为将要读取的单元格的范围.bb为读取的矩阵在MATLAB中的变量名. 2.使用m文件脚本如下: Excel = actxserver('Excel.Application'); set(Excel, 'Visible', 1); Workbooks = Excel.Workbooks; Workbook = invoke(Workbooks, 'Open', [cd,'\feature\ABC.xls']); %% 读取ABC.xls:sheet1 a1(即R1C1)~an40(即R240c40) 范围内的 40by40 矩阵read_excel=ddeinit('excel','ABC.xls:sheet1'); feature1 = ddereq(read_excel, 'R1c1:R40c40'); feature1 %% 关闭ABC.xls invoke(Excel, 'Quit'); delete(Excel); 注意:在使用时将m文件与xls文件存于同一个目录下.另外:sheet1:可以重命名,且读取sheet的名称要和实际存放的名称相同. matlab读取excel,txt文件函数 注意matlab不识别中文,读写的文件中最好不含有中文 excel读取函数xlsread

如何将Excel中的数据导入MATLAB并在MATLAB中画出图像

1. 如何将Excel中的数据在MATLA界面下显示出来: 首先Excel必须是office 的(WPS勺不可以,MATLA不能识别),在MATLA中使用命令xlsread读取Excel中的数据到MATLA里,如下所示:[number,txt,raw]=xlsread('noise.xlsx'),此时读取的文件须在MATLA默认路径下,命令具体用法及参数含义可直接用help 命令在MATLA中查找。读取的数据界面如下: [0.2i60] [0.24SO] [0.2500] [0.2520] [0.2540] [0.2560] [0.2580] [0.25Q0] [0.2620] [0. 2640] [0. 2660] [0.2680] [0.2700] [0.2720] [0.2740] [0. 2760] [23.6000] [ 28] [30.4000] 125-2000] [ 18] [19.2000] [2L 2000] [17. 20Q0] [16.SOOO] [17.6000] [13.6000] [11.2000] [13.6000] [13.2000] [ 10] [12.4000] 2. 如何将Excel中的数据导入MATLA并在MATLA中画出图像? 首先Excel必须是office 的(WPS勺不可以,MATLA不能识别),file-Import Data- 在工作路径下找到需要导入的文件(图3)-点击 打开(图4)-点击next-点击finish- 导入成功-在workspace中看到图5 (导入的数据)。至此数据导入成功。下面是如何利用该数据绘图:法一:双击workspace中的data打开如图6,选中要画图的数据如图7 (数据范围可以根据需要随便选择),点击上方的plot(data (1:874,1:2),画出图像如图8,并且在工作空间中自动显 示画图命令。 法二:直接在工作空间中写画图命令。 >> [number, txt raw!=zlsr*ad C noise.xlsz J) riunber 二 0.246023. 6000 0.24SC 2& 0000 0.2500 30. 4000 0. 2520 25.2000 0. 2E40 18. 0000 0.2560 2000 Di 2580 21. 2000 0.2600 17.2000 0. 2620 16.3000 0. 2640 17. 6000 0. 13. 6000 0* 26SA 1],2000 0. 2700 13. SQ00

基于MATLAB的EXCEL数据计算与分析

基于MATLAB的EXCEL数据计算与分析 潜刘方 摘要:再怎么样希望先看摘要,阅读本文需要一定的MATLAB基础知识,不需要excel相关知识。结合本人近期工作上的需要测量计算,想偷懒就选择了利用MATLAB偷懒,于是便有了本文。本文首先利用MATLAB读取数据,计算,将数据写入excel,然后花了很大的精力来根据实际需要画图,最后将图保存在excel所在的文件夹下。这个m文件可谓花了我不少的时间和精力。最后根据m文件的不足(不能将图形输入到excel文档当中),进一步弥补这不足,就有了exlink(也叫excel link),在网上搜索了相关的知识,发现很多关于exlink 的培训,觉得实在可笑,所以就将exlink的使用写的比较详细,以供读者自行分析体会。关键字:MATLAB excel exlink接口 一、前沿 MATLAB是一款应用在各个领域的数学软件,最初叫做矩阵实验室,专用于矩阵的运算,后来的版本再各个领域都得到了很好的应用,比如:通信、电力电子、电机控制、运动控制、计算机控制、自动控制,DSP数字信号处理。但是MATLAB对于数据的处理与可视化是很多软件所不能及的。 EXCEL作为办公必备软件,能对简单数据分析计算与作图分析,但是处理复杂数据显得力不从心,比如三维作图就无法利用EXCEL作出;EXCEL本身的函数远远没有MATLAB 多,MATLAB作为数据有其独特的优势,集成了很多数学函数,包括数据拟合差值等。MATLAB 可以从EXCEL中读取数据,经过相关运算之后又可以将数据写入EXCEL,假如需要重复性的对excel可以利用MATLAB编写函数,每次只要运行MATLAB程序就可以完成,大大节省时间和精力。 另外,MATLAB还有与EXCEL的接口,叫做EXLINK,运用这个接口可以在excel中完成MATLAB函数的调用,还能传送数据给MATLAB,从MATLAB当中读取数据,从MATLAB 当中读取图形,使用方便,操作简单。 二、基于MATLAB的数据分析 数据分析操作流程主要分为三步:第一步,从excel中读取数据;第二部:利用MATLAB 大量函数对数据分析处理;第三步:将分析结果写入excel中。在整个过程中,不需要打开excel软件,操作十分方便,每次操作唯一要做就是修改excel所在的目录及文件名。主要函数如下(具体使用方法可在MATLAB命令窗口输入help+函数名查看):Xlsread从excel中读数据 Xlswrite向excel中邪数据 num2str将数字转换为字符串 strncmp字符串比较 polyfit数据拟合 polyval具体数值代入求值 plot作图

matlab读取txt和excel

Text的读写 1.读文本文件 fid=fopen('matlab3.txt','r') %我已把txt放入matlab默认文件夹 a=fscanf(fid,'%s') 2.写文本文件 fid=fopen('matlab3.txt','a'); a=[1,2,6666,8]; fprintf(fid,'%d',a); fclose(fid); fid1=fopen('matlab3.txt','r'); b=fscanf(fid1,'%s') 注:1)打开文件fid=fopen(文件名,‘打开方式’) 其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下:‘r’:只读方式打开文件(默认的方式),该文件必须已存在。 ‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。 ‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。 ‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。 ‘a’:在打开的文件末端添加数据。文件不存在则创建。 ‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。 2)关闭文件 文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用fclose函数,调用格式为: sta=fclose(fid) 说明:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。如果要关闭所有已打开的文件用fclose(‘all’)。1)读文本文件 fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为: [A,COUNT]=fscanf(fid,format,size) 说明:其中A用来存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,format用来控制读取的数据格式,size为可选项。 2)写文本文件 fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为: fprintf(fid,format,A) 说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。

MATLAB读写Excel

MATLAB读写Excel (2012-08-27 15:07:00) 转载▼ 在一篇文章里看到了MATLAB对Excel文件的操作。当然,最简单的是选状态栏中的Import 了,在这里作者提供了两种读取Excel文件的方法。 1 利用matlab从excel中读取数据使用 1.1 uiimport可视化导入命令 只需要在command window中输入uiimport,出现这个窗口后你就懂了 1.2 用xlsread读Excel,不仅适合后缀为xls的文件,07版xlsx也适用 假设excel表的文件名为book1.xls,存放在E:\ 读取命令:data = xlsread('E:\book1'); 这样就将excel中的数据读入到data中了,但这个命令只能用来读数值,无法读取文字。如果读取数值的同时想读取excel中的文字可以使用下面的命令: [data,text] = xlsread('E:\book1'); 命令执行后数值在data数组中,文字在text中,text为cell类型 xlsread命令参数如下

data = xlsread(filename, sheet, range) sheet代表从哪个表中读入数据,range代表读入数据区间例如:'A2:D4' 2. 用matlab将数据写入excel中 xlswrite(filename, M, sheet, range) 例:xlswrite('E:\text.xls',M,sheet2,'A3:E5') M为要写入的数据,可以是矩阵也可以是cell类型 注:MATLAB中读写Excel的函数有 xlsfinfo检查文件是否包含excel表格;xlread读写excel文件;xlswrite写excel文件。xlsread的调用格式为: 1. num=xlsread('filename')从excel文件filename的第一个工作页中读取所有的数据到double 型数据num中。它忽略头行、头列、尾行、和尾列的所有单元为文本的行列,其他单元中的文本全部读取为NaN。 2. num=xlsread('filename',-1)手动框选要读取的数据块,返回到矩阵num中。 3. num=xlsread('filename',sheet)读filename中指定页的数据到矩阵中。 4. num=xlsread('filename','range')读filename中第一页的指定区域的数据到矩阵中。例如 num=xlsread('a1.xls','A2:G2') 5. num=xlsrad('filename',sheet,'range')读filename中指定页、指定区域的数据到矩阵中。 6. num=xlsread('filename',sheet,'range','basic')以基本输入模式,读filename中指定页的数据到矩阵中,参数range被忽略,sheet必须为带引号的字符串且区分字母大小写。这种模式限制了数据输入的能力,不将excel当作一个COM服务器。 7. [num,txt]=xlsread('filename',.......)读filename中的数据,返回数据double型数据到num中,文本数据到字符串单元数组txt中。txt中对应的数值数据的位置为空字符串。 8. [num,txt,raw]=xlsread('filename',.....)读filename中的数据,并返回数值数据到double型数组num中,非数值的文本到字符串单元数组txt中,未处理的单元数据到字符串单元数组raw 中。raw中包含数值数据和文本数据。 通过excel link实现excel和matlab数据共享,安装excel link的步骤如下(03版):

matlab基础xlsread

在一篇文章里看到了MATLAB对Excel文件的操作。当然,最简单的是选状态栏中的Import 了,在这里作者提供了两种读取Excel文件的方法。 1 利用matlab从excel中读取数据使用 1.1 uiimport可视化导入命令 只需要在command window中输入uiimport,出现这个窗口后你就懂了 1.2 用xlsread读Excel,不仅适合后缀为xls的文件,07版xlsx也适用 假设excel表的文件名为book1.xls,存放在E:\ 读取命令:data = xlsread('E:\book1'); 这样就将excel中的数据读入到data中了,但这个命令只能用来读数值,无法读取文字。如果读取数值的同时想读取excel中的文字可以使用下面的命令: [data,text] = xlsread('E:\book1'); 命令执行后数值在data数组中,文字在text中,text为cell类型 xlsread命令参数如下 data = xlsread(filename, sheet, range) sheet代表从哪个表中读入数据,range代表读入数据区间例如:'A2:D4' 2. 用matlab将数据写入excel中 xlswrite(filename, M, sheet, range) 例:xlswrite('E:\text.xls',M,sheet2,'A3:E5') M为要写入的数据,可以是矩阵也可以是cell 类型 注:MATLAB中读写Excel的函数有 xlsfinfo检查文件是否包含excel表格;xlread读写excel文件;xlswrite写excel文件。xlsread的调用格式为: 1. num=xlsread('filename')从excel文件filename的第一个工作页中读取所有的数据到double 型数据num中。它忽略头行、头列、尾行、和尾列的所有单元为文本的行列,其他单元中的文本全部读取为NaN。 2. num=xlsread('filename',-1)手动框选要读取的数据块,返回到矩阵num中。

matlab关于excel的相关操作

一、matlab读取excel数据 y=xlsread('0.3C-20to50dischargevoltage.xlsx','sheet1','c2:c20') 二、matlab 读入excel 小数位数丢失问题 一)如果要在matlab 命令提示符下显示更多有效位数,可以执行format long g 或 format long e 还有很多显示的格式,详情参见format 函数的帮助 (二)也可以用vpa(A,N),N 为显示的数字位数 第一种无法精确控制小数位数,只能是5,10,15 第二种可以精确控制小数位数,只是速度很慢,不适用大矩阵问题 三、matlab 将数据保存在excel 中的操作 %xlswrite('文件存盘位置\文件名字(自己想取的文件名).xls',在matlab 工作窗口中的数组)%例如:将数组A 存盘到d 盘的003文件夹xlswrite('d:\003.xls',A) 稍微复杂些:bb=[1,2,3,4,5,6];cc=[7,8,9,10,11,12];xlswrite('test.xlsx',bb','Sheet2','B1:B6')xlswrite('test.xlsx',cc','Sheet2','C1:C6') bb=[1,2,3,4,5,6];cc=[7,8,9,10,11,12];xlswrite('test.xlsx',bb','Sheet2','B')xlswrite('test.xlsx',cc','Sheet2','C')与上面程序的效果一样 PS :如果每次都要存入不同的文件,需要每次修改程序中要保存的文件名 Office2007必须用 xlsx,office2000或2003用xls,否则无法打开

关于matlab读取excel以及处理

在许多时候我们要借助于matlab读取excel的内容进行处理,一下是一种常用的处理方法 office的表格文件也就是xls文件本质上就是一个二维矩阵,二维矩阵是用来保存数据的最佳方式,所以在日常工作中,我们从其它地方获取的数据通常都被保存为xls格式,但处理数据时,我们却需要把xls文件的数据导入到matlab里进行处理。 如果你只处理一个文件并且只做一次的话,你可以手动来拷贝粘贴,这花费不了你太多时间。如果有很多xls文件,或者你的xls文件的内容可能随时被修改,那么下面的方法可以派上用场。 matlab自身提供了大量的函数,包括读取office文件。其中xlsread和xlswrite就是专门用来读取xls文件里的数据的。这两个函数的使用方法可以直接查看matlab自带的帮助。 xlsread对于纯数据的xls文件支持很完美,也就是说当xls文件里的每个格子都是“数”时,xlsread会直接返回一个实数矩阵。但是通常我们拿到xls文件并不是这样,它的表头多半是描述性文字,它的数据也有可能是文字,有些位置的数据还有可能是缺失的。xlsread对这样的文件读取无能为力,或者说需要大量的时间去协调数据的位置信息。要是有一个函数,能够按照原有的顺序直接读取所有的单位格数据就好了。当然,这时候返回的矩阵就不能是一个数值矩阵了,它将会是一个cell矩阵,里面的每个元素类型可能不一样。 matlab本身并不提供这个功能,但是另外有一个函数officedoc完美的实现这个功能。这个函数包可以去OfficeDoc官方网站上去下载,解压缩后放到工作路径上即可。使用方法可以查询help officedoc。officedoc是收费函数包,但有免费版本,而且其免费版本可以实现上面我们所说的效果(收费版本主要是可以用来修改office文件)。 例子: 在matlab中读取xls格式的文件内容如应用如下函数: 1.bb=xlsread('c:feature.xls','a0:an40'),其中:c:feature.xls为文件存放的地址,a0:a40为将要读取的单元格的范围.bb为读取的矩阵在MATLAB中的变量名. 2.使用m文件脚本如下: Excel = actxserver('Excel.Application'); set(Excel, 'Visible', 1); Workbooks = Excel.Workbooks; Workbook = invoke(Workbooks, 'Open', [cd,'\feature\ABC.xls']); %%读取 ABC.xls:sheet1 a1(即 R1C1)~an40(即 R240c40) 范围内的40by40矩阵 read_excel=ddeinit('excel','ABC.xls:sheet1'); feature1 = ddereq(read_excel, 'R1c1:R40c40'); feature1 %%关闭ABC.xls invoke(Excel, 'Quit'); delete(Excel); 注意:在使用时将m文件与xls文件存于同一个目录下.另外:sheet1:可以重命名,且读取sheet的名称要和实际存放的名称相同.

在Excel中应用MATLAB

收稿日期:2000205222  作者简介:李杰(1972-),男,硕士研究生,主要研究方向:遥控遥测、CDM A 扩频通信仿真、卫星通信. 文章编号:1001-9081(2000)11-0066-02 在Excel 中应用M AT LAB 李 杰 (北京航空航天大学电子工程系,北京100083) 摘 要:详细介绍了连接Excel 和M AT LAB 的步骤及在Excel 中应用M AT LAB 的方法,极大地增强了Excel 处理数据的能力和图形输出的能力。 关键词:Excel ;Matlab ;函数 中图分类号:TP311 文献标识码:A 1 MAT LAB 和Excel 简介 M AT LAB 是MathW orks 公司推出的面向工程和 计算的交互式计算软件,它已成为国际公认的最优秀的科技应用软件。自1980年以来,它已被广泛应用于控制系统、信号处理、数据分析、通信系统、金融系统、生物医学等领域。M AT LAB 拥有三大特点:一是强大的矩阵处理和数值运算能力;二是强大的符号运算能力;三是强大的图形输出能力。M AT LAB 的三大特点使它不仅能够进行复杂的数据计算、符号运算,而且能够将计算的结果以二维、三维、乃至四维的图形表现出来,并且可以通过对图形线性、立面、色彩、渲染、光线、视角等特性的处理,把计算数据的特征表现得淋漓尽致。 Excel 是一个非常出色的电子表格软件,它以 图、文、表三者完美结合的形式被广泛应用于财务、统计和分析等领域。Excel 内包含一个巨大的内置函数集,供数据处理使用,如能将M AT LAB 强大的数据计算和处理能力、灵活的可编程能力、完美的图形 输出能力赋予Excel ,那么Excel 的功能将会变得更加强大。本文就介绍如何将Excel 和M AT LAB 结合起来,使它们交互协同工作。 2 连接E xcel 和M A T LA B 的步骤与函数 1)运行Micros oft Excel ; 2)打开工具菜单(T ools ),选择加载宏(Add -Ins ),单击Browse 按钮; 3)在C :\M AT LAB \EX LI NK 下找到EXC LI NK.X LA ,单击OK 按钮; 4)返回到加载宏(Add -Ins )窗口,单击OK 按 钮,Excel Link 则被加载到Excel 中; 5)观察Excel 会发现M AT LAB 命令窗口(包括 putmatrix ,getmatrix ,evalstring 三个按钮)出现在Excel 的任务栏内(如图1)。 putmatrix ,getmatrix ,evalstring 三个按钮的作用分 别是:将电子表格内所选数据发送到M AT LAB ;从 M AT LAB 获取数据;执行M AT LAB 命令。 连接Excel 和M AT LAB 的数据管理函数共有七 表1 函数名 适用范围 宏 工作簿 作 用 M LPutVar < 将Excel 工作簿中的数据发送到M AT LAB M LG etVar < 将M AT LAB 中的数据发送到Excel M LPutM atrix << 将Excel 工作簿中的数据发送到M AT LAB M LG etM atrix << 将M AT LAB 中的数据发送到Excel M LAppendM atrix << 将Excel 工作簿中的数据发送到M AT LAB M LDeleteM atrix << 删除M AT LAB 中的变量M LEvalS tring < < 在Excel 中执行M AT LAB 命令 第20卷第11期2000年11月 计算机应用C om puter Applications Vol.20,No.11Nov.,2000

matlab程序转换和在excel VBA

matlab程序转换和在excel VBA中的调用。 金融行业中VBA有着几乎最广泛的运用,但是很多人苦于VBA很难找到如同matlab强大的数学运算工具库,而在某些问题的处理上会大费周章。 首先打开matlab(我的版本matlab 2006b, version7.3),在命令窗口输入指令: mbuild -setup 出现选择: Please choose your compiler for building standalone MATLAB applications: ?? Would you like mbuild to locate installed compilers [y]/n? 接着选择No 然后出现选择项: Select a compiler: [1] Borland C++Builder version 6.0 [2] Borland C++Builder version 5.0 [3] Borland C/C++ (free command line tools) version 5.5 [4] Lcc C version 2.4.1 [5] Microsoft Visual C/C++ version 8.0 [6] Microsoft Visual C/C++ version 7.1 [7] Microsoft Visual C/C++ version 6.0 ?? [0] None 我们是要转换为excel可以调用的compiler,所以5,6,7都可。我自己的电脑装有VC++6.0,所以我选择的7 接下来就是让你输入你安装的vc++6.0的路径并确认。 ?? 做好这一步之后,就可以在命令窗口输入指令:deploytool 然后matlab右边会弹出一个操作窗口,然后新建一个项目和路径,记得选择成builder for excel。 然后在项目里面添加你要转换的所有你自己编写的matlab函数。(必须是matlab的函数,所以必须以function开头) 然后点击"build the project"的小图标,等着转换完成。 这一步做完后,就可以关闭matlab了。把你之前设立新项目的文件夹下多出的“distrie”和“src"两个文件夹拷贝到你要使用这些自定义函数的excel文件所在地方。然后打开excel,再打开excel的vba编辑器(Alt+F11),在编辑器里面点”文件---导入文件“导入刚才拷贝过来的”src“文件夹下后缀名.bas的文件。现在,就可以在excel里面轻松使用你自定义的函数了。调用的函数名称和你写的matlab函数名一样,所以非常简便。 如果函数返回值是一个矩阵,比如A=Personal(),返回的A会是3*3矩阵,那么就拖蓝一片3*3区域,输入"=Personal()”,然后点击"ctrl+shift+Enter",这样出来的结果,就是你matlab自定义函数"Personal()"应该返回的矩阵了。

相关文档
相关文档 最新文档