在matlab中创建一个补丁链接?

时间:2011-08-17 20:01:39

标签: matlab hyperlink patch

我已经提出了几个关于在matlab中建立图像链接的问题,但我希望能够将补丁作为链接。我尝试了下面发布的代码但是没有用。关于如何使这项工作的任何想法?

 patch([x2(i) x2(i+1) x2(i+1) x2(i)],[y3(j) y3(j) y3(j+1) y3(j+1)],[-0.01 -0.01 -0.01 -0.01],'r','FaceAlpha' ,.4,'EdgeColor','none','ButtonDownFcn', ['winopen(''' file(j,i) ''');']);

function [filePath] = file( x, y )
    filePath = strcat('C:\Documents and Settings\Sentinelle\My Documents\Prostate_082_31\sl5_knt1\sl5_',num2str(x),'-',num2str(y),'.ps');
end

3 个答案:

答案 0 :(得分:2)

这是一个工作示例(只是将文件的路径调整为实际存在的东西):

BASE_DIR = 'C:\path\to\directory';
fcn = @(x,y) fullfile( BASE_DIR , sprintf('file_%d-%d.txt',x,y) );

patch([-1 -1 1 1], [-1 1 -1 1], 'r', ...
    'ButtonDownFcn',{@(o,e,f)winopen(f), fcn(2,1)})
axis([-2 2 -2 2])
title('Click the shape to open file...')

enter image description here

答案 1 :(得分:1)

通常,使用两个输入参数调用回调,即对象的句柄和通常为空的eventdata。这可能会导致错误。试试这个而不是['winopen(''' file(j,i) ''');']

@(u,v)winopen(@()file(j,i))

答案 2 :(得分:0)

问题在于贴片的位置位于图像后面[-0.01 -0.01 -0.01 -0.01]。链接被图像掩盖了。我将代码更改为[0 0 0 0],这符合我的要求。

patch([x2(i) x2(i+1) x2(i+1) x2(i)],[y3(j) y3(j) y3(j+1) y3(j+1)],[0 0 0 0],'r','FaceAlpha' ,.4,'EdgeColor','none','ButtonDownFcn', ['winopen(''' file(j,i) ''');']);