matlab之xlsread函数

matlab之xlsread函数

xlsread

目录

xlsread

语法

说明

示例

将工作表读取到数值矩阵

读取元胞的范围

读取列

请求数值、文本和原始数据

对工作表执行函数

请求自定义输出

输入参数

filename — 文件名字符向量 | 字符串

sheet — 工作表字符向量 | 字符串 | 正整数

xlRange — 矩形范围字符向量 | 字符串

'basic' — 请求在 basic 模式下读取的标记字符向量 | 字符串

processFcn — 自定义函数的句柄函数句柄

输出参数

num — 数值数据矩阵

txt — 文本数据元胞数组

raw — 数值数据和文本数据元胞数组

custom — 对应于 processFcn 的函数的第二个输出由函数定义

局限性

算法

版本历史记录

R2019a: 不推荐使用 xlsread

(不推荐)读取 Microsoft Excel 电子表格文件

全页折叠

不推荐使用 xlsread。请改用 readtable、readmatrix 或 readcell。有关详细信息,请参阅兼容性注意事项。

语法

num = xlsread(filename)

num = xlsread(filename,sheet)

num = xlsread(filename,xlRange)

num = xlsread(filename,sheet,xlRange)

num = xlsread(filename,sheet,xlRange,'basic')

[num,txt,raw] = xlsread(___)

___ = xlsread(filename,-1)

[num,txt,raw,custom] = xlsread(filename,sheet,xlRange,'',processFcn)

说明

示例

num = xlsread(filename) 读取名为 filename 的 Microsoft® Excel® 电子表格工作表中的第一个工作表,并在一个矩阵中返回数值数据。

num = xlsread(filename,sheet) 读取指定的工作表。

示例

num = xlsread(filename,xlRange) 从工作簿的第一个工作表的指定范围内读取数据。使用 Excel 范围语法,例如 'A1:C3'。

示例

num = xlsread(filename,sheet,xlRange) 读取指定的工作表和范围。

num = xlsread(filename,sheet,xlRange,'basic') 在 basic 导入模式下读取电子表格中的数据。如果您的计算机未安装 Windows® 版 Excel 或者您正在使用 MATLAB® Online™,xlsread 会自动在 basic 导入模式下运行,该模式支持 XLS、XLSX、XLSM、XLTX 和 XLTM 文件。

如果不指定所有参数,请使用空字符向量 '' 作为占位符,例如,num = xlsread(filename,'','','basic')。

示例

[num,txt,raw] = xlsread(___) 还使用先前语法中的任何输入参数,在元胞数组 txt 中返回文本字段,在元胞数组 raw 中返回数值数据和文本数据。

___ = xlsread(filename,-1) 打开一个 Excel 窗口以便按交互方式来选择数据。选择工作表,将鼠标拖放到所需范围上,然后点击确定。只有安装了 Microsoft Excel 软件的 Windows 计算机才支持此语法。

示例

[num,txt,raw,custom] = xlsread(filename,sheet,xlRange,'',processFcn)(其中 processFcn 是函数句柄)读取电子表格,对数据调用 processFcn,并在数组 num 中以数值数据的形式返回最终结果。xlsread 函数在元胞数组 txt 中返回文本字段、在元胞数组 raw 中返回数值和文本数据,并在数组 custom 中返回 processFcn 的第二个输出。xlsread 函数不会更改电子表格中存储的数据。只有安装了 Excel 软件的 Windows 计算机才支持此语法。

示例

全部折叠

将工作表读取到数值矩阵

创建一个名为 myExample.xlsx 的 Excel 文件。

values = {1, 2, 3 ; 4, 5, 'x' ; 7, 8, 9};

headers = {'First','Second','Third'};

xlswrite('myExample.xlsx',[headers; values]);

myExample.xlsx 的 Sheet1 包含:

First Second Third

1 2 3

4 5 x

7 8 9

读取第一个工作表中的数值数据。

filename = 'myExample.xlsx';

A = xlsread(filename)

A =

1 2 3

4 5 NaN

7 8 9

读取元胞的范围

从上一示例的 Excel 文件中读取特定范围的数据。

filename = 'myExample.xlsx';

sheet = 1;

xlRange = 'B2:C3';

subsetA = xlsread(filename,sheet,xlRange)

subsetA =

2 3

5 NaN

读取列

从第一个示例的 Excel 文件中读取第二列。

filename = 'myExample.xlsx';

columnB = xlsread(filename,'B:B')

columnB =

2

5

8

要获得更佳的性能,可在范围中包括行号,例如 'B1:B3'。

请求数值、文本和原始数据

从第一个示例中的 Excel 文件中请求数值数据、文本数据和合并数据。

[num,txt,raw] = xlsread('myExample.xlsx')

num =

1 2 3

4 5 NaN

7 8 9

txt =

'First' 'Second' 'Third'

'' '' ''

'' '' 'x'

raw =

'First' 'Second' 'Third'

[ 1] [ 2] [ 3]

[ 4] [ 5] 'x'

[ 7] [ 8] [ 9]

对工作表执行函数

在编辑器中,创建一个函数以处理工作表中的数据。在这种情况下,将范围 [0.2,0.8] 之外的值设置为 0.2 或 0.8。

function [Data] = setMinMax(Data)

minval = 0.2;

maxval = 0.8;

for k = 1:Data.Count

v = Data.Value{k};

if v > maxval

Data.Value{k} = maxval;

elseif v < minval

Data.Value{k} = minval;

end

end

在命令行窗口中,将随机数据添加到 myExample.xlsx。

A = rand(5);

xlswrite('myExample.xlsx',A,'MyData')

名为 MyData 的工作表包含范围在 0 至 1 之间的值。

读取工作表中的数据,并重置范围 [0.2,0.8] 之外的任何值。指定工作表名称,但使用 '' 作为 xlRange 和 'basic' 输入的占位符。

trim = xlsread('myExample.xlsx','MyData','','',@setMinMax);

请求自定义输出

对工作表执行函数并显示自定义索引输出。

在编辑器中,修改上一示例中的函数 setMinMax 以返回更改后的元素(自定义输出)的索引。

function [Data,indices] = setMinMax(Data)

minval = 0.2;

maxval = 0.8;

indices = [];

for k = 1:Data.Count

v = Data.Value{k};

if v > maxval

Data.Value{k} = maxval;

indices = [indices k];

elseif v < minval

Data.Value{k} = minval;

indices = [indices k];

end

end

读取工作表 MyData 中的数据,并请求自定义索引输出 idx。

[trim,txt,raw,idx] = xlsread('myExample.xlsx',...

'MyData','','',@setMinMax);

输入参数

全部折叠

filename — 文件名 字符向量 | 字符串

文件名,指定为字符向量或字符串。如果未包括扩展名,xlsread 将搜索具有指定的名称和支持的 Excel 扩展名的文件。xlsread 可以读取当前在 Windows 版 Excel 中打开的文件中保存的数据。

示例: 'myFile.xlsx' 或 "myFile.xlsx"

数据类型: char | string

sheet — 工作表 字符向量 | 字符串 | 正整数

工作表,指定为下列值之一:

包含工作表名称的字符向量或字符串。名称不能包含冒号 (:)。要确定电子表格文件中工作表的名称,请使用 xlsfinfo。对于 basic 模式的 XLS 文件,sheet 区分大小写。

指示工作表索引的正整数。对于 basic 模式下的 XLS 文件,不支持此选项。

数据类型: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

xlRange — 矩形范围 字符向量 | 字符串

矩形范围,指定为字符向量或字符串。

使用两个对角指定 xlRange,这两个对角用来定义要读取的区域。例如,'D2:H4' 表示工作表上两个角落 D2 和 H4 之间的 3×5 矩形区域。xlRange 输入不区分大小写,并使用 Excel A1 引用样式(请参阅 Excel 帮助)。

读取 basic 模式下的 XLS 文件时不支持范围选择。在这种情况下,请使用 '' 代替 xlRange。

如果未指定 sheet,则 xlRange 必须包括两个角落和一个冒号字符,甚至对于单个单元格(例如 'D2:D2')也是如此。否则,xlsread 会将输入解释为工作表名称(例如 'sales' 或 'D2')。

如果指定了 sheet,则 xlRange:

无需包括冒号和对角即可描述单个单元格。

可以引用在 Excel 文件中定义的命名范围(请参阅 Excel 帮助)。

当指定的 xlRange 与合并的单元格重叠时:

在安装了 Excel 的 Windows 计算机上,xlsread 将展开该范围以包括所有合并的单元格。

在未安装 Windows 版 Excel 的计算机上,xlsread 仅返回指定范围中的数据,且合并单元格的值为空或 NaN。

数据类型: char | string

'basic' — 请求在 basic 模式下读取的标记 字符向量 | 字符串

请求在 basic 模式下进行读取的标志,指定为字符向量或字符串 'basic'。

basic 模式是不带 Excel(适用于 Windows)的计算机的默认设置。在 basic 模式下,xlsread:

仅读取 XLS、XLSX、XLSM、XLTX 和 XLTM 文件。

读取 XLS 文件时不支持 xlRange 输入。在这种情况下,请使用 '' 代替 xlRange。

不支持函数句柄输入。

将所有日期导入为 Excel 日期序列值。Excel 日期序列值使用不同于 MATLAB 日期数字的参考日期。

数据类型: char | string

processFcn — 自定义函数的句柄 函数句柄

自定义函数的句柄。仅安装了 Excel 软件的 Windows 计算机上才支持此参数。xlsread 读取电子表格,对数据副本执行您的函数,并返回最终结果。xlsread 不会更改电子表格中存储的数据。

当 xlsread 调用自定义函数时,它将传递 Excel 应用程序的一个范围接口以提供对数据的访问权限。自定义函数必须包括此接口作为输入和输出参数。(请参阅对工作表执行函数)

示例: @myFunction

输出参数

全部折叠

num — 数值数据 矩阵

数值数据,返回为 double 值的矩阵。该数组不包含标题行中的任何信息,也不包含外部行或列(包含非数值数据)中的任何信息。内部电子表格行和列中的文本数据在 num 输出中显示为 NaN。

txt — 文本数据 元胞数组

文本数据,返回为元胞数组。内部电子表格行和列中的数值在 txt 中显示为空字符向量 ''。

对于 basic 导入模式下的 XLS 文件,txt 输出包含空字符向量 '',代替位于电子表格中文本数据前面的数值数据的前导列。在所有其他情况下,txt 不包含这些额外的列。

未定义的值(例如 '#N/A')在 txt 输出中显示为 '#N/A',basic 模式下的 XLS 文件除外。

raw — 数值数据和文本数据 元胞数组

工作表中的数值数据和文本数据,以元胞数组的形式返回。

在安装了 Windows 版 Excel 的计算机上,未定义的值(例如 '#N/A')在 raw 输出中显示为 'ActiveX VT_ERROR:'。对于其他计算机上或 MATLAB Online 中的 XLSX、XLSM、XLTX 和 XLTM 文件,未定义的值显示为 '#N/A'。

custom — 对应于 processFcn 的函数的第二个输出 由函数定义

对应于 processFcn 的函数的第二个输出。custom 的值和数据类型由该函数确定。

局限性

xlsread 仅读取 7 位 ASCII 字符。

xlsread 不支持非相邻范围。

如果您的计算机未安装 Windows 版 Excel 或者您正在使用 MATLAB Online,xlsread 会自动在 basic 导入模式下运行。

在 Linux® 和 Mac 平台上,xlsread 不能打开使用 writetable 函数编写的电子表格文件。

算法

xlsread 导入表示日期的格式化文本(例如 '10/31/96'),但在 basic 模式下导入时除外。

版本历史记录

在 R2006a 之前推出

全部折叠

R2019a: 不推荐使用 xlsread

不推荐使用 xlsread。请改用 readtable、readmatrix 或 readcell。目前没有删除 xlsread 的计划。

从 R2019a 开始,请分别使用 readtable、readmatrix 或 readcell 将电子表格数据作为表、矩阵或元胞数组导入。与 xlsread 函数相比,readtable、readmatrix 和 readcell 函数具有以下优势:

更好的跨平台支持和性能

自动检测数据格式和类型

能够使用导入选项来控制数据导入过程,包括错误和缺失数据的处理

下表显示了 xlsread 的典型用法,以及如何更新代码以改用 readtable、readmatrix 或 readcell。

不推荐

推荐

使用 xlsread 将电子表格数据作为矩阵读取:

M = xlsread(filename) 将电子表格数据作为表读取:

T = readtable(filename) 但是,要继续将数据作为矩阵读取,请使用: M = readmatrix(filename) 使用 xlsread 将电子表格数据作为元胞数组读取:

[~,~,C] = xlsread(filename) 将电子表格数据作为表导入:

T = readtable(filename) 但是,要继续将数据作为元胞数组导入,请使用: C = readcell(filename) 使用 xlsread 将特定工作表和范围作为矩阵读取:

M = xlsread(filename,sheet,range) 将特定工作表和范围作为表读取:

T = readtable(filename,'Sheet',sheet,'Range',range) 但是,要继续将数据作为矩阵读取,请使用: M = readmatrix(filename,'Sheet',sheet,'Range',range) 使用 xlsread 将特定工作表和范围作为元胞数组读取:

[~,~,C] = xlsread(filename,sheet,range)

将特定工作表和范围作为表读取:

T = readtable(filename,'Sheet',sheet,'Range',range) 但是,要继续将数据作为元胞数组读取: C = readcell(filename,'Sheet',sheet,'Range',range)

相关推荐

她有过3次婚史,一任丈夫是富豪,一个是演员,一个是国家主席
神兽新生,王灵苏醒!王者玄武登场
bt365手机官方网址

神兽新生,王灵苏醒!王者玄武登场

📅 09-16 👁️ 7929
第737篇.四川邛崃天台山游记(四)访古
bt365手机官方网址

第737篇.四川邛崃天台山游记(四)访古

📅 08-07 👁️ 7939
win10打开计算机闪屏,教你一个解决win10开机闪屏的方法
365体育亚洲官方入口app下载

win10打开计算机闪屏,教你一个解决win10开机闪屏的方法

📅 07-24 👁️ 8645
鸣潮网络无法连接的主要原因
365体育亚洲官方入口app下载

鸣潮网络无法连接的主要原因

📅 08-20 👁️ 9293
OPPO手机换卡流程详解:轻松一步步教你如何更换SIM卡
bt365手机官方网址

OPPO手机换卡流程详解:轻松一步步教你如何更换SIM卡

📅 07-30 👁️ 5952