当前位置:首页 » 《随便一记》 » 正文

Matlab提取excel数据及处理的实操举例

25 人参与  2024年11月03日 16:42  分类 : 《随便一记》  评论

点击全文阅读


实现目的

当excel数据量庞大的时候,如果采用人工处理数据的方法就会成为非常出力不讨好的事,既容易出错,又容易抑郁。

利用matlab处理成为既简单又高效的方式。

例如,以GD32F7xx系列的管脚复用表格为例,在169x19的excel表格中:

如何快速得到UART7_RX所有对应的管脚及AF值,并将信息以数组形式输出。

相关函数介绍:xlsread

xlsread 是数学软件matlab中读取Excel文件中数据的一个函数。即从当前程序所在文件夹里,按照函数中的参数指定的范围,从单元格开始读取文件,返回数据。

(1)num = xlsread(‘filename’)

从指定文件夹读取,比如说num=xlsread(‘data.xls’),即从当前程序所在文件夹里,从A1单元格开始读取,读取data.xls文件,把数据返回给num。

(2)num = xlsread(‘filename’,‘sheet’)
选择所在的sheet,比如说’sheet1’。

(3)num = xlsread(‘filename’, ‘range’)
所在的单元格范围,比如说range=‘A1:A8’。

(4)num = xlsread(‘filename’, ‘sheet’, ‘range’)
sheet和单元格范围同时限制。

(5)[num, txt]= xlsread(‘filename’, …)
把返回的数据与文本分开保存。

(6)[num, txt, raw] = xlsread(‘filename’, …)
分开保存的同时,有把num和txt保存到raw里,形成一个单一变量。

其中,num是数值型变量且为矩阵,txt是字符型变量且为细胞数组,raw既含数值型变量又含字符型变量,raw是细胞数组。

相关函数介绍:strcmp相关

1.strcmp(s1, s2):用于比较字符串s1、s2是否相等,如果相等,返回结果1,否则返回0;

例如:

TF=strcmp(s1,s2);

s1和s2是字符串,比如:s1=‘hello’,s2='matlab'。

如果s1和s2是一致的,则返回值TF=1,否则,TF=0。

TF=strcmp(s,c);

s是一个字符串,c是一个cell数组,c的元素全是字符串,比如:s=‘hello’,c={'hello','matlab';'HELLO','matlab'}。

返回值TF是一个和c有相同长度的数组,TF的元素是1或0。

把c中的每个元素和s做比较,如果一致,则TF对应位置的元素为1,否则,为0。

TF=strcmp(c1,c2);

c1和c2都是cell数组,并且它们具有相同的长度,它们的元素都是字符串,比如c1={'hello','matlab';'HELLO','matlab'};c2={'hello','matlab';'hello','MATLAB'};

返回值TF是一个和c1或c2有相同长度的逻辑数组,TF的元素是1或0。

把c1和c2对应位置的元素做比较,如果一致,则TF对应位置的元素为1,否则,为0。

2.strncmp(s1, s2, n):用于比较字符串s1、s2前n个字符是否相等,如果相等,返回结果1,否则返回0;

3.strcmpi(s1, s2):在忽略字母大小写的前提下,比较字符串s1、s2是否相等,如果相等,返回结果1,否则返回0;

4.strncmpi(s1, s2, n):在忽略字母大小写的前提下,比较字符串s1、s2前n个字符是否相等,如果相等,返回结果1,否则返回0。

实操举例

1.定义输出的数组,提取excel文件内容并生成txt数组:

>> OUTPUT=cell(10,2);>> [~,txt] = xlsread('D:\aaa\bbb\ccc.xlsx');

此时可以看到变量:

2.编辑转换函数:

遍历所有内容并对比,找到UART7_RX所有对应的管脚及AF值,并将信息以数组形式输出。

function OUTPUT=excel_read(specified_txt)[~,txt] = xlsread('D:\aaa\bbb\ccc.xlsx');m = 1;OUTPUT=cell(10,2);for i=1:169    for j=1:19        if strcmp(txt(i,j),specified_txt)            OUTPUT(m,1)=txt(i,1);            OUTPUT(m,2)=txt(1,j);            m=m+1;        end    endendend

3.调用函数:

>> OUTPUT=excel_read('UART7_RX')

可以得到如下结果:

即:UART7_RX所有对应的管脚及AF值,并将信息以数组形式输出。


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/181933.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 被至亲迫害后,我母仪天下精彩节选试读_[雪儿太子妃明白]小说免费试读
  • 全网独家(爱如烟花,转瞬即逝免费)爱如烟花,转瞬即逝免费_顾鸢沈景初列表_笔趣阁(爱如烟花,转瞬即逝免费)
  • (番外)+(全书)宋青青聂子远(我给第三十八任老公过喜:全书+后续+结局)_宋青青聂子远免费列表_笔趣阁(我给第三十八任老公过喜:全书+后续+结局)
  • 妹妹的死亡预言完结版免费阅读_祖母妹妹囡囡全文+后续
  • 莫用爱囚我:+后续+结局老书虫全书傅寒深宋初雪在线
  • 溪荪琐雪小说免费试读_[大少爷老夫老婆子]后续完结版
  • 他站在回忆尽头:结局+番外好文分享(乔若兮沈辞安)_他站在回忆尽头:结局+番外好文分享
  • [妹妹的死亡预言]限免完整章节合集‌_「祖母妹妹囡囡」最新后续章节在线阅读
  • 我给第三十八任老公过喜:全书+番外(宋青青聂子远)全书宋青青聂子远结局_宋青青聂子远结局列表_笔趣阁(我给第三十八任老公过喜:全书+番外)
  • 爱如烟花,转瞬即逝:结局+番外精选作品之一(顾鸢沈景初)全书免费_(顾鸢沈景初)爱如烟花,转瞬即逝:结局+番外精选作品之一后续(顾鸢沈景初)
  • 我给第三十八任老公过喜:+后续(宋青青聂子远)全书免费_(宋青青聂子远)我给第三十八任老公过喜:+后续后续(宋青青聂子远)
  • 和离后,傲娇世子夜夜入房锁腰吻:结局+番外(沈婼裴彻)列表_和离后,傲娇世子夜夜入房锁腰吻:结局+番外(沈婼裴彻)全书+后续+结局在线

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1