作者celestialgod (攸蓝)
看板MATLAB
标题Re: [问题]想请问有关eval单引号的打法
时间Tue Jul 28 12:05:37 2015
※ 引述《pipited07 (天啊完全不知道取什麽)》之铭言:
: 如题,小弟是matlab新手版上已经找到很多类似问题但解法还是看不懂@@
: 小弟想把下方的excel档1-1的第二个工作表,写进eval函数当中,让他丢进回圈可以读到
: 1-1,1-2,1-3,1-4,1-5的每个excel的第二个工作表,并且命名为f1,f2,f3,f4,f5
: f1=xlsread('C:\Users\Adam\Desktop\A\1\1-1',2)
: 上面此行为单纯一个的范例
: 写进回圈中
: for i=1:5
: eval(['f',num2str(i),'=xlsread('C:\Users\Adam\Desktop\A\1\1-,num2str(i),',2)'])
eval(['f', num2str(i), '=xlsread('C:\\Users\\Adam\\Desktop\\A\\1\\1-', ...
num2str(i), '.xls'])
: end
: 我知道上面单引号错误连篇
: 想请教版上大大单引号方面到底是如何判断
: 还有使用范围
: 如单引号到底是头尾相连一组,还是连续单引号之内是一组
不太懂这个问题是什麽?
'string' 这样是一组, ' '内是你要eval的指令
: 也顺便请教大大上面那个回圈到底要怎麽改呢?
我还觉得没事别玩eval玩到後来玩死自己而已
建议还是考虑用ls()跟regexp去做,并且用cell储存矩阵
以下只是一个范例:
dir_files = 'C:\\Users\\Adam\\Desktop\\A\\1'
cd(dir_files)
files = ls(dir_files)
files = files(~cellfun('isempty', regexp('1-\d.xls', cellstr(files))), :)
xls_forms = cellfun(@(x) xlsread(x), cellstr(files))
% cellfun都可以用for取代
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.205.27.107
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1438056340.A.72D.html
1F:→ jatj: 同意 eval是非常不好的写法 速度暨慢 程式易读性也差 07/28 12:26
2F:→ jatj: 在很多篇下面也呼吁过不要用eval了 根本是deval 07/28 12:28
3F:→ jatj: 可读性 编译 最佳化 处理资源量 安全性 eval都不及格 07/28 12:29
对阿,最近几天的帖子都是eval
每一篇都要强调一次eval是很糟糕的写法...
用其他资料储存格式去处理资料是比较友善的方式...
eval用到後来,code都可以称做evil...
没人要接触的程式码(摊手
※ 编辑: celestialgod (123.205.27.107), 07/28/2015 12:34:06
4F:→ jatj: 刚刚一直在想evil可是拼不出来 哈哈 07/28 12:34
5F:推 pipited07: 谢谢c大~ 07/28 17:42