2011-08-05 50 views
1

這個問題是建立在此前一個問題'here'我想在圖像上製作256個點,所有這些導致基於*位置的不同pdf文檔。我不想在256個獨立的文件路徑中編碼。我已經嘗試了下面的一些代碼,至今還沒有運氣。在Matlab中插入多個鏈接到圖像中?

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 

回答

1

在我看來,你的代碼是錯誤的幾個地方:

  1. file()功能不知道x價值觀和y
  2. file()功能不使用的電流值i
  3. 文件路徑使用idependently的i
值的

您可能想要

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 
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 

瞭解詳情並從那裏瀏覽。