[問題] 資料名稱不同如何讀取改名稱

看板MATLAB作者 (班尼5116)時間10年前 (2015/03/27 15:54), 10年前編輯推噓0(009)
留言9則, 1人參與, 最新討論串1/1
as title 現在workspace裡頭有好幾筆資料 ex 這邊共26組有依照順序排列 qqq1aa,qqq1bb,qqq1st,qqq1mm qqq2aa,qqq2bb,qqq2st,qqq2mm . . . qqq26aa,qqq26bb,qqq26st,qqq26mm 還有數字不是按順序的41組如 L20aa,L20bb,L20st,L20mm L84aa,L84bb,L84st,L84mm . . . 這種數字名稱非依順序排列的 要如何讓以上這些資料 重新改名後輸入到我要的程式當中執行 例如將 qqq1aa改為a1 qqq1bb改為b1 qqq1st改為c1 qqq1mm改為d1 然後在程式當中執行a1 b1 c1 d1的計算 目前以26那幾組的想法是 for i=1:26 將原名稱改名 改名後執行程式 將此計算後資料儲存 end 但迴圈當中不知道要如何去更改名稱 因為我的名稱是qqq數字加aa、bb、st、mm 如果名稱後面單純只有數字應該很好改 但目前是文字+數字+文字 就不知道該如何下手... 還有那些LXX的數值也不知道要如何以上面那種方式去改 有請各位大大高手們幫忙了!! -- Sent from my Nokia 3310 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.25.118.240 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1427442859.A.0EC.html

03/27 16:29, , 1F
大大你太神拉~ 不過剛剛我試著執行 可以成功讀取我那些資料沒錯 不過不太懂eval後面的ii-j這意思是? 我想說可不可以將其改名後在我程式當中執行 例如我的程式當中有這4個值aa bb st mm 是要在程式當中執行的 是否可以透過你這方式 將其4個名稱改為aa bb st mm 在程式當中計算完畢 例如 第一次將 qqq1aa名稱改為aa qqq1bb名稱改為bb qqq1st名稱改為st qqq1mm名稱改為mm 計算完後 然後讀取下一組 qqq2aa qqq2bb qqq2st qqq2mm 但不知該從哪邊去改... ※ 編輯: benny5116 (163.25.118.240), 03/27/2015 16:49:38

03/27 16:55, , 2F
可是你第二組要改啥?
03/27 16:55, 2F

03/27 16:55, , 3F
現在的方式是根據數字做suffix
03/27 16:55, 3F
很抱歉我沒說清楚我的問題 就第一組資料都改為aa bb st mm 然後執行計算我會在得到一組值 (這才是我最後要存起來的 只是我把aa bb st mm拿來在程式中做計算) 然後第二組qqq2aa bb st mm 都一樣改為只有aa bb st mm 這樣的形式,然後一樣帶入程式做計算 在得到一組值存起來這樣依此類推 ※ 編輯: benny5116 (120.126.8.124), 03/27/2015 17:13:06

03/27 17:14, , 4F
這個case跟你一開始要的不太一樣吧...
03/27 17:14, 4F

03/27 17:15, , 5F
可能要另外寫吧
03/27 17:15, 5F
大大抱歉! 我前面文章說明的可能不太正確 真的很感激您的協助!! ※ 編輯: benny5116 (120.126.8.124), 03/27/2015 17:22:41

03/27 17:24, , 6F
你可能需要用strfind一次找到你要的四個variable
03/27 17:24, 6F

03/27 17:24, , 7F
然後再用eval轉成你要的值做計算
03/27 17:24, 7F

03/27 17:25, , 8F
或是乾脆把那些值通通丟到一個cell,迴圈做
03/27 17:25, 8F
感謝大大的方法 我去看看strfind要怎麼做,謝謝您!! ※ 編輯: benny5116 (120.126.8.124), 03/27/2015 17:32:51 想再請教那些沒按順序的41組也是一樣用strfind就可以了嗎? ※ 編輯: benny5116 (120.126.8.124), 03/27/2015 17:38:05

03/27 17:58, , 9F
03/27 17:58, 9F
文章代碼(AID): #1L5Goh3i (MATLAB)
文章代碼(AID): #1L5Goh3i (MATLAB)