作者jackhzt (巴克球)
看板R_Language
标题[问题] 利用 R 读 mat 档
时间Thu May 25 16:21:17 2017
最近要用 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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.136.91.165
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1495700479.A.002.html
1F:→ andrew43: 要不要生成一个类似资料的假mat档让大家试? 05/25 16:26
※ 编辑: jackhzt (140.109.73.209), 05/25/2017 16:56:12
2F:→ celestialgod: 请爱用rmatio这个套件 05/25 17:52
4F:→ celestialgod: 不过基本上CJK文字要经过转换,除非是在unix-like 05/25 18:14
5F:→ celestialgod: 还有v7跟v7.3版本的mat都会有问题 05/25 18:16
6F:→ celestialgod: 一定要用v6版本(摊手 05/25 18:16
7F:→ celestialgod: 或是选择不压缩 05/25 18:16
8F:→ jackhzt: 刚刚试了一下 rmatio 但是出现已下讯息 : 05/25 18:19
9F:→ jackhzt: Character data not supported type: 17Character data n 05/25 18:20
10F:→ celestialgod: 注意 7跟7.3版本的mat不支援,save要用加个-v6 05/25 18:20
11F:→ jackhzt: not supported type: 17 05/25 18:20
12F:→ jackhzt: 成功没有警告消息了 05/25 18:50
13F:→ jackhzt: 正在用iconv编码 不知道这是甚麽码到甚麽码 05/25 18:51
14F:→ celestialgod: 看了一下,是转成mat_uint8_t 05/25 18:55
15F:→ celestialgod: CJK文字应该是没救了 05/25 18:55
17F:→ jackhzt: 看来是没救惹? 好巴 QQ 05/25 18:57
18F:→ celestialgod: 更正是用char存 05/25 18:59
20F:→ celestialgod: 用其他格式储存吧(摊手 05/25 19:01
21F:→ jackhzt: 那还有救吗? 05/25 19:01
22F:→ celestialgod: excel是一个不错的选择XD 05/25 19:01
23F:→ jackhzt: XDDDDD 看来要这一步要放弃使用R了 05/25 19:03
24F:→ jackhzt: 谢谢C大 <3 05/25 19:04