沙洛姆
我試圖用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