[爆卦]matlab字串變數是什麼?優點缺點精華區懶人包

為什麼這篇matlab字串變數鄉民發文收入到精華區:因為在matlab字串變數這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者fxxkjoe1231 (魯到入味)看板MATLAB標題[問題] 以字串為變數名稱時間Mon A...


板上各位好,我的問題在於能否有辦法將讀入的字串拿來命名變數?

我的目的在於將說明檔內的項目及內容對應讀出至同個cell中後,

將該項目字串作為其內容字串的變數名稱。

說明檔內容概略如下:

.
.
.
FILE_DATE = 2015-07-25T14:36:47Z
STATION_ID = "LGN"
PROCESSING_SOFTWARE_VERSION = "LPGS_2.5.1"
.
.
.

我以for迴圈及fgetl逐條讀取後以strtok取出等號前後的文字分別為項目及內容,

並存至cell內table{line,1}及table{line,2}中。

目前卡住的地方在於我想用table{line,1}的字串逐項為table{line,2}內的字串命名,

即鍵入FILE_DATE會直接跳出2015-07-25T14:36:47Z。

請板上先進不吝提點,謝謝!

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.218.39.53
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1471834535.A.C93.html
sunev: eval萬能,不過為什麼要這麼做? 08/22 11:16
感謝sun大提示,之前就有用eval但一直失敗,剛終於試成功,

對於引號放置的位置感覺仍是嘗試錯誤...

eval([table{str_lines,1} '= table{str_lines,2}'])

主要是因為這個說明檔未來仍有可能增減內容,而用這種方式就能將所有資訊讀入。

而對於特定用途的應用,我只需知道哪些項目是我需要的就可以把內容抓出來使用。
※ 編輯: fxxkjoe1231 (49.218.39.53), 08/22/2016 15:04:35
sunev: 先看看這是是不你要的字串 08/22 15:42
sunev: [table{str_lines,1} '= table{str_lines,2}'] 08/22 15:42
sunev: 應該是弄反了 08/22 15:42
sunev: [table{str_lines,1} = ''table{str_lines,2}''] 08/22 15:43
sunev: 不過你這裡要用eval,之後你所謂的「將所有資訊讀入」 08/22 15:44
sunev: 打算怎麼做?一樣用eval?資訊一直都在那個table函數啊? 08/22 15:44
我用回文內的部分沒問題,內容都以項目名重新命名。

我的意思為,假設我的說明檔內有一百條,則跑了我詢問部分前的程序後,

可得到一個table,內部有該說明檔內的項目及內容(值)各一百項。

而我的問題部分則可以將該table內的內容以項目命名,且該項目名稱不變。

若未來的說明檔增加了其他項目(>一百條),則我一樣可以讀檔,

並將我要的項目及其值抓出來使用。

即使說明檔內的項目增加而改變各項目的排序,而我事先已經確定我需要的項目為何,

我都可以快速讀檔並用該項目名稱找到對應的值。


早期我是先記好各項目位置後,只抓特定值,但自從說明檔改版後新增資訊,

就得親自打開說明檔去找被更改後各項目的位置。

前文我提到的方法是我想到目前較自動化且好維護的方法
※ 編輯: fxxkjoe1231 (49.218.39.53), 08/22/2016 16:36:13
sunev: 得到table的程序已經自動化了,既使說明檔做了變動,也可以 08/22 16:44
sunev: 自動產生新的table? 08/22 16:44
sunev: 所以你需要的只是「用該項目名稱找到對應的值」,那用那個 08/22 16:45
sunev: table變數就可以辦到了啊? 08/22 16:45
我大概懂意思了,是指透過字串判斷直接去找table內對應的值?
※ 編輯: fxxkjoe1231 (49.218.39.53), 08/22/2016 22:14:11
sunev: 差不多是這個意思,可能要用for,不過才幾百個也不會太慢 08/22 22:23

你可能也想看看

搜尋相關網站