2013-05-15 70 views
1

我已經寫出了生成關於化學物質的圖表和表格的matlab程序。我主要從excel表和本地MySql數據庫獲取輸入。我的問題是相當多的物質名稱包含希臘字母。如何將Unicode轉換爲matlab?

我的問題是我想創建使用完全由我的同事指定的名稱的情節。還可以創建顯示正確符號的表格。

示例: 如果我在第一個單元格中創建包含「α-Methylstyrol」的Excel文件並用[~,~,tmp] = xlsread('test.xlsx')讀取它。 tmp將包含'(box with question mark)-Methylstyrol'。如果我使用的字符串中的情節(title(tmp)),它會顯示爲:'(right arrow)-Methylstyrol'


到目前爲止,我嘗試了native2unicodeunicode2native命令的字符串,但沒有什麼效果。此外,我試圖更換字符,但我需要替換的字符數量增長速度對我來說太快 - 所以我真的希望有一個更系統的方式。

(我們知道也有,不會含有希臘字母的名字 - 但我們儘量堅持一些指引,喜歡這些名稱。)

回答

0

據我瞭解,MATLAB不支持Unicode很好。但是,可以使用LaTex語法在圖像標題中鍵入希臘字母。

title('\alpha-Methanol') 

即使它是不是最好的解決辦法,我想應該可以用乳膠關鍵字替換的unicode符號。

+1

正如我寫的,我考慮過這一點。這只是爲了擁有我認爲現在是「標準」的功能而開銷太多。 – bdecaf

0

我認爲,你的問題是,xlsread甚至沒有從你的工作表中得到正確的希臘字母。
只要給jexcelapipoi一試。這兩個鏈接都導致用於導入xls文件的java類。在MATLAB中,只需要通過javaaddpath將jar文件添加到路徑中,接下來的步驟就像基本的java編碼。

+0

其實這個字母是正確的:'double(tmp {1})'給出了'945 45 77 101 116 104 121 108 115 116 121 114 111 108' - 945似乎是正確的編碼:http://www.fileformat.info/ info/unicode/char/3b1/index.htm – bdecaf

+0

Hi @bdecaf - 我在單元格A1中使用'MATLAB R2013a'和一個'xlsx'表單,只用'α-alpha'。 '[a,b,c] = xlsread('C:\ Users \ ebelingb \ Desktop \ alpha.xlsx')'產生'a = []','b ='-alpha''和'c =' - alpha''。你有沒有嘗試過java類? –