沙洛姆
我试图用MATLAB希伯来语字符串工作。但是当我试图将希伯来字符串分配给一个变量时,它不会分配它。例如:
一个= 'א'
A =
任何想法,为什么?
沙洛姆
我试图用MATLAB希伯来语字符串工作。但是当我试图将希伯来字符串分配给一个变量时,它不会分配它。例如:
一个= 'א'
A =
任何想法,为什么?
Aleph is in UTF-16,其中matlab用其标准的2字节char
格式表示。它可能不支持这种方式的输入。
你可能需要做
a = char(1488); % 1488 is UTF-16 for aleph
然后将它输出某种方式UTF-16可读。
如果你想简单地把希伯来语成数字标题或东西,那么你可以直接写乳胶这样的:
title('\aleph')
如果你想利用Matlab进行文字处理,我认为它会但你可能无法查看Matlab命令窗口中的字符。
更新:在我的系统甚至写在希伯来语编码文件,不支持:
fid = fopen('c:\temp\chris.txt','w','native','hebrew');
Warning: The encoding 'ISO-8859-8' is not supported.
See the documentation for FOPEN.
但是,也许你的机器支持,如果您有希伯来语语言设置。
我没有收到任何错误,但它仍然无效:( – user552231
这是我会做的读/写文件,在这种情况下什么:
%# some Hebrew characters
hebrewString = repmat(char(1488),1,10); %# 'אאאאאאאאאא'
%# convert and write as bytes
b = unicode2native(hebrewString,'UTF-8');
fid = fopen('file.txt','wb');
fwrite(fid, b, '*uint8');
fclose(fid);
%# read bytes and convert back to Unicode string
fid = fopen('file.txt', 'rb');
b = fread(fid, '*uint8')'; %'
fclose(fid);
str = native2unicode(b,'UTF-8');
%# compare and check
isequal(str,hebrewString)
double(str)
为了显示这个字符串,我们需要MATLAB知道的Unicode字符致电:
feature('DefaultCharacterSet','UTF-8');
现在在命令提示符下,你可以试试:
>> str
str =
אאאאאאאאאא
然而,随着显示字符串函数失败(有人可以确认这个answer实际上是否像声称的那样工作?):
hTxt = text(0.1,0.5, str, 'FontName','David', 'FontSize',30);
set(hTxt, uisetfont(hTxt))
我甚至检查了正确的字体可供选择:
>> fontsNames = fontinfo();
>> idx = ~cellfun(@isempty, strfind(lower(fontsNames),'david'));
>> fontsNames(idx)'
ans =
'David'
'David Bold'
'David Regular'
'David Transparent'
在另一方面,正如我在previous answer of mine表明,解出此GUI中的文本是使用Java(MATLAB UICONTROL基于Java Swing组件):
figure('Position',[300 300 500 50]), drawnow
uicontrol('Style','text', 'String',str, ...
'Units','normalized', 'Position',[0 0 1 1], ...
'FontName','David', 'FontSize',30);
(请注意,使用UICONTROL,甚至经常 '宋体' 字体显示正确的输出!)
+1到@zellus伟大的发现! –
顺便说一句,这个帖子中的答案,即文本(0.6,0.5,'ירוק','fontname','david','rotation',180,'fontsize','50','color', 'r')'只在我的机器上生成盒子,而不是希伯来语,可能是因为我没有在我的机器上设置希伯来字符。 –
你也许会发现这个很有用:[MATLAB:如何显示从文件中读取的UTF-8编码文本?](http://stackoverflow.com/questions/6863147/matlab-how-to-display-utf-8-编码文本读取文件) – Amro