概述
读取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中的参数必须是字符串。
- 三个引号:连续的两个引号中,第一个引号表示转义,说明第二引号就是引号,而不是字符的结束。第三个引号才是说明是字符的结束。
- char(sheetsName(i))是在字符串拼接时把string类型变成char型,具体原因可以看这里。
- 一定要好好检查eval内的字符串是否正确,可以先把命令写出来,在一点点添加引号和逗号,测试无误后再放到程序中运行。
最后
eval其实是一个运行速度很慢的操作,所以matlab官方提供了在一些情景下来替代eval的方法。详情可以看这里。
最后
以上就是兴奋航空为你收集整理的matlab之eval的妙用:批量生成、修改变量名(一次性读取Excel内多个工作簿)的全部内容,希望文章能够帮你解决matlab之eval的妙用:批量生成、修改变量名(一次性读取Excel内多个工作簿)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复