我是靠谱客的博主 兴奋航空,最近开发中收集的这篇文章主要介绍matlab之eval的妙用:批量生成、修改变量名(一次性读取Excel内多个工作簿),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

读取Excel内的多工作簿,这里不在啰嗦,使用xlsfinfo配合xlsread即可。

但是如果一个excel文件内工作簿的数量太多,就需要借助eval了。

eval是一个函数,可以把括号里的字符串解释成命令直接运行。在循环中我们没有办法直接修改变量名字,但使用eval可以达到目的。
举例:

[~,sheets]=xlsfinfo('file.xlsx'); % get sheet names in excel file
sheetsName=string(sheets); % cell to string
excelName='file.xlsx'; 

for i=1:length(sheetsName)
   a=['sheet',num2str(i)];
   eval([a,'=xlsread(''',excelName,''',','''',char(sheetsName(i)),'''',');']);
end

运行即可发现每一个sheet都按照顺序赋给了sheet1,sheet2…中了。

注意
eval中的参数必须是字符串。

  1. 三个引号:连续的两个引号中,第一个引号表示转义,说明第二引号就是引号,而不是字符的结束。第三个引号才是说明是字符的结束。
  2. char(sheetsName(i))是在字符串拼接时把string类型变成char型,具体原因可以看这里。
  3. 一定要好好检查eval内的字符串是否正确,可以先把命令写出来,在一点点添加引号和逗号,测试无误后再放到程序中运行。

最后
eval其实是一个运行速度很慢的操作,所以matlab官方提供了在一些情景下来替代eval的方法。详情可以看这里。

最后

以上就是兴奋航空为你收集整理的matlab之eval的妙用:批量生成、修改变量名(一次性读取Excel内多个工作簿)的全部内容,希望文章能够帮你解决matlab之eval的妙用:批量生成、修改变量名(一次性读取Excel内多个工作簿)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部