※ 引述《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取代