文档库 最新最全的文档下载
当前位置:文档库 › matlab批量导入excel

matlab批量导入excel

matlab批量导入excel
matlab批量导入excel

使用前

应查清楚每个网格的测试条数及当前信标最大标号LoadMultiExcels(Grid_simpl,Beacon_num)

Grid_simpl 测试条数

Beacon_num 信标最大标号

function newsheet = addsheet(WorkSheets,Sheet)

% Add new worksheet, Sheet into worsheet collection, WorkSheets.

if isnumeric(Sheet)

% iteratively add worksheet by index until number of sheets == Sheet.

while WorkSheets.Count < Sheet

% find last sheet in worksheet collection

lastsheet = WorkSheets.Item(WorkSheets.Count);

newsheet = WorkSheets.Add([],lastsheet);

end

else

% add worksheet by name.

% find last sheet in worksheet collection

lastsheet = WorkSheets.Item(WorkSheets.Count);

newsheet = WorkSheets.Add([],lastsheet);

end

% If Sheet is a string, rename new sheet to this string.

if ischar(Sheet)

set(newsheet,'Name',Sheet);

end

end

clc

clear all

grid_num_sum = 10;

grid_simpl_num = 50;

beacon_num = 24;

xlsstr={};

xlsdata={};

%data_path = uigetdir; %选择文件夹

%dat_path = 'E:\VS2008项目\数据库\';

data_path_chose = uigetdir;

all_info = dir(data_path_chose); %读入目录下文件信息存储为结构体形式

b=struct2cell(all_info); %将格式转为cell形式

c=b(1,:); %取出其中文件名单元

[h,l]=size(c); %计算文件个数

%% 提取文件名中的数字部分

% s='abc_123.dfg';

pat='[0-9]*';

% matches=regexp(s,pat,'match')

%% 批量读入

xls_num = 0; %xls文件数

for i=1:l

if strfind(c{i},'.xls') %如果是xls文件格式注意括号要使用cell的括号

if strfind(c{i},'测试')

continue;

end

temp = regexp(c{i},pat,'match'); %%提取名字中数字部分用于排列命名

index_temp = cell2mat(temp); %%格式转换

if (~ischar(index_temp) || ndims(index_temp)>2) %文件名不为数字则跳过continue;

end

xls_num = xls_num +1;

index = str2num(index_temp); %若文件名不包含数字则会出错

id_db(:,xls_num) = index;

data_path = data_path_chose;

data_path = strcat(data_path,'\');

data_path = strcat(data_path,c{i});

[str{index},data{index}]=xlsread(data_path);

end

end

scale_struct = size(data);

scale_cell = size(data{1,1});

grid_Num = scale_struct(1,2);

DB_original = zeros(xls_num*grid_simpl_num,beacon_num*2+1);%49=48(rssi + num)+1(id),网格数35,每格子测试100条

index = 1;

ID_max = max(id_db);

%% 把所有网格测试整理为一张大表并把十六进制转为十进制%%

for i = 1:ID_max

if ~any(id_db == i) %没有此序列

continue;

end

for row = 2:grid_simpl_num+1

for col = 3:50

DB_original(index,1) = i;

aa =data{1,i}{row,col};

DB_original(index,col-1) = hex2dec(aa);

end

index = index + 1;

end

end

saveDB_path_t = strcat(data_path_chose,'\');

saveDB_path = strcat(saveDB_path_t,'DB_original');

save(saveDB_path,'DB_original');

%% 批量存Excel

%current_path = pwd;

[pathstr,name,ext,versn] = fileparts(data_path_chose);

% pathstr = E:\VS2008项目\数据库

% name =测RSSI_0721_实验测试

% ext =.xls

% versn =''

save_path = strcat(saveDB_path_t,name);

suffix = '.xls';

save_path = strcat(save_path,suffix);

for i =1:xls_num

% if ~any(id_db == i) %没有此序列

% continue;

% end

% xlswrite('data.xls',R,'Sheet1',s);

grid_temp = DB_original(grid_simpl_num*(i-1)+1:grid_simpl_num*i,2:49); % 每grid_simpl_num存一次

s = sprintf('%d', DB_original(grid_simpl_num*i,1));

xlswrite(save_path,grid_temp,s);

warning off MATLAB:xlswrite:AddSheet;

end

msgbox('数据已处理完毕!','确认');

function LoadMultiExcels(Grid_simpl,Beacon_num)

% this function is supposed to be used for load all excels in one special

% file.

% by Liu Wen long in BUPT,10/07/24

if (~nargin == 2)||(~isnumeric(Grid_simpl))...

||(~isnumeric(Beacon_num)) %判断输入变量个数

error('输入参数应数目为2,类型应为整型!');

end

%grid_num_sum = Grid_num;

grid_simpl_num = Grid_simpl;

beacon_num = Beacon_num;

xlsstr={};

xlsdata={};

%data_path = uigetdir; %选择文件夹

%dat_path = 'E:\VS2008项目\数据库\';

data_path_chose = uigetdir;

all_info = dir(data_path_chose); %读入目录下文件信息存储为结构体形式

b=struct2cell(all_info); %将格式转为cell形式

c=b(1,:); %取出其中文件名单元

[h,l]=size(c); %计算文件个数

%% 提取文件名中的数字部分

% s='abc_123.dfg';

pat='[0-9]*';

% matches=regexp(s,pat,'match')

%% 批量读入

xls_num = 0; %xls文件数

for i=1:l

if strfind(c{i},'.xls') %如果是xls文件格式注意括号要使用cell的括号if strfind(c{i},'测试')

continue;

end

temp = regexp(c{i},pat,'match'); %%提取名字中数字部分用于排列命名

index_temp = cell2mat(temp); %%格式转换

if (~ischar(index_temp) || ndims(index_temp)>2) %文件名不为数字则跳过continue;

end

xls_num = xls_num +1;

index = str2num(index_temp); %若文件名不包含数字则会出错

id_db(:,xls_num) = index;

data_path = data_path_chose;

data_path = strcat(data_path,'\');

data_path = strcat(data_path,c{i});

[str{index},data{index}]=xlsread(data_path);

end

end

scale_struct = size(data);

scale_cell = size(data{1,1});

grid_Num = scale_struct(1,2);

DB_original = zeros(xls_num*grid_simpl_num,beacon_num*2+1);%49=48(rssi + num)+1(id),网格数35,每格子测试100条

index = 1;

ID_max = max(id_db);

%% 把所有网格测试整理为一张大表并把十六进制转为十进制%%

for i = 1:ID_max

if ~any(id_db == i) %没有此序列

continue;

end

for row = 2:grid_simpl_num+1

for col = 3:50

DB_original(index,1) = i;

aa =data{1,i}{row,col};

DB_original(index,col-1) = hex2dec(aa);

end

index = index + 1;

end

end

saveDB_path_t = strcat(data_path_chose,'\');

saveDB_path = strcat(saveDB_path_t,'DB_original');

save(saveDB_path,'DB_original');

%% 批量存Excel

%current_path = pwd;

[pathstr,name,ext,versn] = fileparts(data_path_chose);

% pathstr = E:\VS2008项目\数据库

% name =测RSSI_0721_实验测试

% ext =.xls

% versn =''

save_path = strcat(saveDB_path_t,name);

suffix = '.xls';

save_path = strcat(save_path,suffix);

for i =1:xls_num

% if ~any(id_db == i) %没有此序列

% continue;

% end

% xlswrite('data.xls',R,'Sheet1',s);

grid_temp = DB_original(grid_simpl_num*(i-1)+1:grid_simpl_num*i,2:49); % 每grid_simpl_num存一次

s = sprintf('%d', DB_original(grid_simpl_num*i,1));

xlswrite(save_path,grid_temp,s);

warning off MATLAB:xlswrite:AddSheet;

end

msgbox('数据已处理完毕!','确认');

end %function LoadMultiExcels()

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');

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关于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基础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的内容进行处理,一下是一种常用的处理方法 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的数据交互

Excel与Matlab的数据交互 假设列举十只股票,算其五日平均线,平均股价,标准差...等,如果用Excel Link的话,可将资料由Excel 传给Matlab处理,再将结果送回excel 中我们指定的位置1)开启Microsoft excel . 2)Tools\Add-Ins\Browse\toolbox\exlink\excllink.xla Click OK. 是指Matlab的根目录,会依你的安装路径,及版本不同,而有所不同. 3)Tools\Add-Ins,核选ExcelLink 2.2.2for use with MATLAB ,then Click OK.(版本不一定相同) 4)这时你会发现excel 里,多了Matlab Command Window(命令视窗),这儿就是你下命给Matlab的地方. 5)另外在excel 里,也多了Excel Link toolbar.a)startmatlab b)putmatrix c)getmatrix d)evalstring 6)以后开启excel就会自动开启matlab,如果觉得不便,可在excel命令栏输入 =MLAutoStart("no")按Enter解除自动联结,要使用matlab时,再按左上按钮"startmatlab"即可. 4.exlink toolbox提供的范例(ExliSamp.xls)有五个例子: Example 1: Regression and Curve Fitting Example 2: Interpolating Data Example 3: Pricing a Stock Option with the Binomial Model Example 4: Calculating and Plotting the Efficient Frontier of Financial Portfolios Example 5: Bond Cash Flow and Time Mapping 5.这次我以example1为例,为方便了解,修改写了regression & curve fitting.xls,内含16个指令.也就是说按了16次enter,就能对Excel Link的功能有了初步的了解.举三个重要指令的语法,说明如下: a) = MLPutMatrix("data",A4:C28) 把资料送往matlab处理. b) = MLEvalString("[p,S] = polyfit(1:n,y',5)") 请matlab执行这样的指令,这儿5代表fifth-degree polynomial,如果改个数字图形会变如何? c) =MLGetMatrix("y",A5) 把matlab处理完的资料,送回excel指定的栏位.

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()"应该返回的矩阵了。

matlab课程设计对excel进行数据读取,绘图及更改数据

电子信息系统设计与仿真报告设计题目GUI模块实现excel文件的处理 姓名: 学号:201300800128 学院: 专业:电子信息科学与技术 年级2013级 2015 年7 月29 日

一.负责部分 Excel文件数据的读入和显示部分,通过GUI模块上的按钮选择读入程序,并显示在GUI模块上的table上。 二.思路 首先要熟悉matlab的基本函数,经过学习,知道了读取.xls文件的函数可以选用xlsread函数,读取文件数据。GUI的基本构架是在模块上构造自己的界面,我负责数据的读入和显示,所以我选用了一个按钮,功能是打开选取文件,还选用了一个table表格显示数据内容。之后把代码写入各自的回调函数,即可实现相应功能。 三.调试过程 代码如下: (1)PUSHBOTTON1(选取文件) % 设置全局变量 global num str %读取文件 PromptString = '选择数据文件。' ; WarningString1 = '文件格式出错。' ; WarningString2 = '选择的文件不是正确的数据文件。' ; [ FileName , PathName ] = uigetfile( {'*.xls','excel文件(*.xls)'}, PromptString ) ; if FileName == 0 return ; else [TempPathName, FileName, FileTypeName, Version] = fileparts( FileName ) ; if ~strcmp( FileTypeName, '.xls' ) ; warndlg( WarningString1, '警告', 'modal' ) ; return ; end SaveFile_traindata = fullfile( PathName, FileName );

Matlab中使用Excel数据

Matlab中使用Excel数据收藏 Problem Description I am trying to control Excel from MATLAB using ActiveX. Are there any ex amples 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 ob ject model, which the external application implements. Consequently, we a re usually unable tp provide much information about the functions that yo u 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 MA TLAB. You can find more information on this interface by selecting the "Mi crosoft Excel Visual Basic Reference" topic in the Microsoft Excel Help Topi c dialog. This topic area contains a searchable description of Excel method s 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 mor e 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操作对象 Excel = actxserver('Excel.Application'); %使Excel对象可见,即打开Excel窗口,实际应用时设置其为不可见的 set(Excel, 'Visible', 1); % Insert a new workbook %创建工作本组对象 Workbooks = Excel.Workbooks;

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