嗯,开门见山地讲,我们平时用PTB做实验刺激的呈现时,基本上都是用的中文或者英文刺激,那么针对PTB中呈现中文汉字可能用到的一些字体,我做过一期推送:Psychtoolbox中适合中文呈现的字体 ,感兴趣的小伙伴可以点开给我加个阅读量。
之前,我也听别人说到过类似的问题:Matlab 中可以呈现日语么?当时我是百分百肯定的,虽然我没有实践过,毕竟Matlab如此强大……然后问题来了,那么维语呢,藏语呢?
然后昨天晚上有个小姐姐找到我,反映了类似的问题:
ps:不要在意图中的聊天背景图!
今天早上醒来,我打开电脑,做了一些尝试,好像真的不能……
然后去百度,发现了端倪:
1)Matlab是可以显示日语的,日语可以的话,那么俄语、维语应该也可以。
2)Microsoft Office中的字体,其实就是电脑的自带字体,如果想更好地 (这里我不知道是不是必要条件) 呈现其他语种,需要下载特定字体,例如 对于日语而言,MS 明朝 (MS Mincho) 和 MS 哥特体 (MS Gothic) 是符合日本人在屏幕上使用的字体,而维语的话,推荐使用ALKATIP系列字体(百度即可下载)。而对于俄语这种西里尔文字体,可使用的就多了。
3)如果想在输入法里添加 维语 输入法,参考一下教程:
Windows10系统添加维吾尔语的方法
然后,我简单地写了一个Demo,实现功能:用对应的字体显示日语、俄语、维语,会用到函数 DrawText。clcclear all %传统艺能:清理内存% weiyu.xlsx 里sheet1里的第一列存放了我瞎乱输入的8个维语词↓% 这里用xlsread函数读取表格,用循环函数将维语词记录到text中↓% text 为 cell 类型 数据[~,~,raw1]=xlsread('weiyu.xlsx',1);for i=1:8text{1,i}=char(raw1{i,1});end% 屏幕参数设置Screen('Preference', 'SkipSyncTests', 1)[window,wrect]=Screen('OpenWindow',0,255,[10 10 400 500]);% 汉字:利威尔兵长,字体:宋体Screen('TextFont',window,'SimSun');Screen('DrawText',window,double('利威尔兵长 身高160cm'),50,150);% 这里我想用宋体试试能不能呈现日语Screen('DrawText',window,double('リヴァイ兵長 身高160cm'),50,200);% 日语:リヴァイ兵長,分别用两种字体显示,MS Mincho 和 MS PGothic。Screen('TextFont',window,'MS Mincho');Screen('DrawText',window,double('リヴァイ兵長 身高160cm'),50,250);Screen('TextFont',window,'MS PGothic');Screen('DrawText',window,double('リヴァイ兵長 身高160cm'),50,300);% 俄语 :очень хорошо,意为 非常好,字体:CalibriScreen('TextFont',window,'Calibri');Screen('DrawText',window,double('очень хорошо'),50,350);% 维语 :سدسد,字体:ALKATIPScreen('TextFont',window,'ALKATIP');Screen('DrawText',window,double(text{1,1}),50,400);Screen(window,'Flip');%呈现
呈现效果如何呢?如图所示,显示效果还是很友好的。
当然,这里如果是制作实验素材的刺激图片时,我们可以利用截屏函数将显示的文字保存为图片,示例:
img=Screen('GetImage',wptr);imwrite(img,[Img '_' num2str(i) '.png'],'png');↑ 这里该函数的详细用法,不做过多解释,请自行查询。
哈哈哈,我又成功地水了一期推送,喜(sang)大(xin)普(bing)奔(kuang)!