这个问题是基于上一个问题构建的'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
答案 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)
在我看来,你的代码在几个地方都是错误的:
file()
函数不知道x
和y
file()
函数不使用i
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