MATLAB中xlsread函数用法

本文详细介绍了MATLAB中的xlsread函数,包括其语法、功能示例、参数使用以及对工作表的读取、文本和原始数据请求、函数应用和自定义输出。同时提到了xlsread函数的局限性,如ASCII字符限制、非相邻范围支持和操作系统兼容问题。
摘要由CSDN通过智能技术生成

目录

语法

说明

示例

将工作表读取到数值矩阵

读取元胞的范围

读取列

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

对工作表执行函数

请求自定义输出

局限性


xlsread函数的功能是读取Microsoft Excel 电子表格文件

语法

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

局限性

  • xlsread 仅读取 7 位 ASCII 字符。

  • xlsread 不支持非相邻范围。

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值