2011-08-03 50 views
3

我想把一個文件鏈接到我在matlab中的圖像中。我有一個特定的地區我想把鏈接。例如,我想要在圖像位置x = 40,y = 120處鏈接文檔的地址。類似於下面的東西,我知道這是不正確的matlab代碼。在matlab中插入一個鏈接到圖像?

text(40,120, '<a href="C:\Documents and Settings\Sentinelle\Desktop\LCModel\sl5_knt1\sl5_11-6.pdf"; ">Click here for plot documentation</a>') 

這可能嗎?我希望能夠使用imshow()或imtool()並能夠單擊圖像的區域並查看文檔。

回答

3

您可以設置'ButtonDownFcn' text屬性使用功能OPEN打開給定文件:

filePath = 'C:\Documents and Settings\Sentinelle\Desktop\LCModel\sl5_knt1\sl5_11-6.pdf'; 
text(40,120,'Click here for plot documentation',... 
    'ButtonDownFcn',['open(''' filePath ''');']); 
+0

我喜歡這個主意,但我收到此錯誤 ???錯誤使用==>打開 輸入參數太多。 ???評估文本時出錯ButtonDownFcn –

+0

@Ben:哦,我明白了。您的文件路徑中有空格。我會編輯以解釋這一點。 – gnovice

3

根據類似discussion,您可以創建一個UICONTROLpushbutton它有它接受HTML輸入字符串中的優勢。然後使用FINDJOBJ,我們可以僞造一個點擊的超鏈接的外觀:

fName = 'C:\path\to\file.pdf'; 
str = '<html><a href="">Click here for plot documentation</a></html>'; 

figure('Resize','off', 'MenuBar','none') 
imshow('coins.png') 
hButton = uicontrol('Style','pushbutton', 'Position',[320 50 170 20], ... 
    'String',str, 'Callback',@(o,e)open(fName)); 

jButton = findjobj(hButton); 
jButton.setCursor(java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); 
jButton.setContentAreaFilled(0); 

screenshot