Re: [問題]想請問有關eval單引號的打法

作者: celestialgod (天)   2015-07-28 12:05:37
※ 引述《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取代
作者: jatj   2015-07-28 12:26:00
同意 eval是非常不好的寫法 速度暨慢 程式易讀性也差在很多篇下面也呼籲過不要用eval了 根本是deval可讀性 編譯 最佳化 處理資源量 安全性 eval都不及格剛剛一直在想evil可是拼不出來 哈哈
作者: pipited07 (阿直直)   2015-07-28 17:42:00
謝謝c大~

Links booklink

Contact Us: admin [ a t ] ucptt.com