matlab如何读取excel中的数据

免费建站   2024年04月25日 5:11  

这篇文章主要为大家展示了“matlab如何读取excel中的数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“matlab如何读取excel中的数据”这篇文章吧。

问题背景:有两份系内人员名单的表格,其中一个是系内所有人员的名单(参加实训的名单中有三个人在总名单里没有录),一个是参加某项实训的人的名单,并非系内所有人都参加了这次实训(我就是其中没参加的一个)。那么现在要通过这两张表格筛选出没有参加的人的名单。

方法一:用眼睛找累死你,(虽然只有一百多人但是也够折腾的)

方法二:我不知道用excel内置的函数怎么实现,可能比较麻烦把

方法三:用编程语言来实现,(我只会matlab)

思路1:导入两个Excel中人名的数据分别存在两个cell中,用两层循环遍历它两,对每个元素进行比较,如果相同就把总名单的的那个元素置空。(外层是总名单,内层是参加实训的人的名单)

思路2:导入两个Excel中人名的数据合并到一块,然后用我之前讲过的数组去重的一个好方法来去重(类似于,不能照搬,稍微改动),那剩下的不就是没参加的人的名单么

有一个BUG:两个人名一模一样,那就去比较学号把

进行编程前,我需要先讲一下matlab如何读excel中的数据。

xlsread函数可以帮助我们读取excel。

这里简单讲一个用法把

[num,txt,raw]=xlsread(filename)Note:num是指定excel中的数值部分txt是指定excel中的文本部分,txt是一个元胞raw数值文本在一块,raw是一个元胞不想要的用~来代替,不用~也行,反正你又不用,放那又不碍事filename是指定excel的文件名(带拓展名)其余的用法读者自行help一下,,输入参数还可以带上excel中的范围,第几个sheet,等

思路1的Code:

clearclc[num_list,name_list]=xlsread('name_list.xlsx');%导入总名单[num_practice,name_practice]=xlsread('practice_list.xlsx');%导入参加实训人的名单fori=1:length(name_list)%对总名单遍历name1=name_list{i};forj=1:length(name_practice)%对实训名单遍历name2=name_practice{j};ifstrcmpi(name1,name2)==1%看一下实训名单中的人名是否出现在总名单中name_list{i}=[];%如果出现就把总名单中的这个元素置空%这里你不能用小括号啊,用小括号每一次外层循环结束后都可能会把name_list给减少一个维度%然后中途就可能会出现索引抽出矩阵的维度的情况%用小括号,就直接把大cell中的一个小cell给删去了%用大括号,是把大cell中的小cell中的元素设为空,小cell还是存在的breakendendend%还记得cellfun么?不记得的话翻以前的文章去(直接点这句话就行)disp(name_list(~cellfun('isempty',name_list)))

Result:运行代码的一秒钟后

思路2的Code:

clearclc[num_list,name_list]=xlsread('name_list.xlsx');%导入总名单[num_practice,name_practice]=xlsread('practice_list.xlsx');%导入参加实训人的名单WholeName=[name_list;name_practice];%合并两个名单%下面对WholeName中的人名去重names={};cnt=0;%思路就是两个名单叠一块一定有重名;%有重名那么我下面的ind中一定有两个或两个以上的元素,把他们置空;%如果是非重元素,则单独保存后再置空;%由于实训名单中最后添加了三个总名单中没有的人名。%所以用本方法会比上一种方法多出三个人来,%不过这不影响,就是数据录入的问题while~isempty(WholeName)ind=find(strcmp(WholeName{1},WholeName)==1);iflength(ind)>=2WholeName(ind)=[];elsecnt=cnt+1;names{cnt}=WholeName{1};WholeName(1)=[];endenddisp(names')

Result:(多出三个人名,为什么请看Code的注释)运行代码的一秒钟后

这个方法二是写着写着想起来的,,配合着回顾之前学的东西。

以上是“matlab如何读取excel中的数据”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部