[問題] 利用 R 讀 mat 檔

作者: jackhzt (巴克球)   2017-05-25 16:21:17
最近要用 R 去讀 matlab 的 mat 檔,matlab 檔的內容為: n 個 cell ,每個cell 都存
一個中文字串,發現利用 R.matlab 中的 readMat 去讀取,會有以下警告訊息:在強制
變更成純量時,任何溢位值當作0來處理。
這讀取的結果會無法顯示任何中文訊息。
請問各位大大有什麼好辦法嗎?
範例:MATLAB:
test{1,1}='貓'
test{2,1}='狗'
test{3,1}='犀牛'
test{4,1}='非洲大草原'
save test.mat
R:
library(R.matlab)
path = system.file("mat-files", package="R.matlab")
pathname = file.path('C:\\Users\\JACK\\\Desktop','test.mat' )
data1 = readMat(pathname)
Warning:
1: In convertUTF8(ary) : 在強制變更成純量值時,任何溢位值當作 0 來處理
output:
""
輸出是空的list
作者: andrew43 (討厭有好心推文後刪文者)   2017-05-25 16:26:00
要不要生成一個類似資料的假mat檔讓大家試?
作者: celestialgod (天)   2017-05-25 17:52:00
請愛用rmatio這個套件http://imgur.com/a/4JU7T不過基本上CJK文字要經過轉換,除非是在unix-like還有v7跟v7.3版本的mat都會有問題一定要用v6版本(攤手或是選擇不壓縮
作者: jackhzt (巴克球)   2017-05-25 18:19:00
剛剛試了一下 rmatio 但是出現已下訊息 :Character data not supported type: 17Character data n
作者: celestialgod (天)   2017-05-25 18:20:00
注意 7跟7.3版本的mat不支援,save要用加個-v6
作者: jackhzt (巴克球)   2017-05-25 18:20:00
not supported type: 17成功沒有警告消息了正在用iconv編碼 不知道這是甚麼碼到甚麼碼
作者: celestialgod (天)   2017-05-25 18:55:00
看了一下,是轉成mat_uint8_tCJK文字應該是沒救了https://goo.gl/bN7dsW
作者: jackhzt (巴克球)   2017-05-25 18:57:00
看來是沒救惹? 好巴 QQ
作者: celestialgod (天)   2017-05-25 18:59:00
更正是用char存https://goo.gl/q9kB4R用其他格式儲存吧(攤手
作者: jackhzt (巴克球)   2017-05-25 19:01:00
那還有救嗎?
作者: celestialgod (天)   2017-05-25 19:01:00
excel是一個不錯的選擇XD
作者: jackhzt (巴克球)   2017-05-25 19:03:00
XDDDDD 看來要這一步要放棄使用R了謝謝C大 <3
作者: celestialgod (天)   2017-05-25 19:08:00

Links booklink

Contact Us: admin [ a t ] ucptt.com