在Matlab中将多个链接插入图像?

时间:2011-08-05 21:20:11

标签: image matlab hyperlink

这个问题是基于上一个问题构建的'here'我想在图像上制作256个点,这些点都会根据*的位置导致不同的pdf文档。我不想在256个单独的文件路径中编写代码。我尝试了下面的一些代码,到目前为止还没有任何运气。

for i = 1:256

    text(x(i),y(i),'*', 'ButtonDownFcn',['open(''' file ''');']);
end

function [filePath] = file()
    %h = impoint;
    %position = getPosition(h);

    filePath = strcat('C:\Documents and Settings\Sentinelle\Desktop\LCModel\sl5_knt1\sl5_',x(1),'-',y(i),'.pdf');
end

2 个答案:

答案 0 :(得分:1)

假设x(i)和y(i)是整数,这应该有效:

prefix = 'C:\Documents and Settings\Sentinelle\Desktop\LCModel\sl5_knt1\sl5_'
for i = 1:256
  filePath = [prefix num2str(x(i)) '-' num2str(y(i)) '.pdf'];
  text(x(i),y(i),'*', 'ButtonDownFcn',['open(''' filePath ''');']);
end

如果它们不是整数,则需要指定浮点数如何转换为字符串。您可以使用num2str的第二个参数执行此操作,键入:

help num2str

了解详情并从那里浏览。

答案 1 :(得分:1)

在我看来,你的代码在几个地方都是错误的:

  1. file()函数不知道xy
  2. 的值
  3. file()函数不使用i
  4. 的当前值
  5. 文件路径使用x(1),但与i
  6. 的值无关

    你可能想要

    for i = 1:256
        text(x(i), y(i), '*', 'ButtonDownFcn', ['open(''' file(x(i),y(i)) ''');']);
    end
    
    function [filePath] = file( x, y )
        filePath = strcat('C:\Documents and Settings\Sentinelle\Desktop\LCModel\sl5_knt1\sl5_',x,'-',y,'.pdf');
    end