Вставить несколько ссылок в изображение в Matlab? - PullRequest
1 голос
/ 06 августа 2011

Этот вопрос построен на основе предыдущего вопроса '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 ]

1 голос
/ 06 августа 2011

Мне кажется, что ваш код неверен в нескольких местах:

  1. функция file() не знает значений x и y
  2. функция file() не использует текущее значение i
  3. путь к файлу использует x(1) независимо от значения 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 голос
/ 06 августа 2011

Предполагая, что 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

для получения подробной информации и просмотра оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...