我完全是ENVI/IDL的初学者
如何将变量插入到字符串中,以便在循环中命名输出文件?
我试图循环一个支持向量机分类器的不同的值和组合的参数,即伽马和惩罚因子。我就是这么想的
gamma=1.167 对于penalty=25,1000,25 ENVI_DOIT,'ENVI_SVM_DOIT',DIMS=array,FID=fid,KERNEL_GAMMA=gamma,OUT_NAME='xxx‘,PENALTY=penalty,POS=array,ROI_IDS=array
在这个OUT_NAME='xxx‘上,我希望有’xxx‘’gammapenalty(随着循环的变化而改变惩罚)。
事先谢谢你,我知道这是个很简单的问题,但最简单的时候对大多数人来说是显而易见的,对于初学者来说很难找到。
发布于 2015-09-13 15:53:38
我想你想要的是:
gamma=1.167
for penalty = 25, 1000, 25 do begin
ENVI_DOIT, 'ENVI_SVM_DOIT', DIMS=array, FID=fid, $
KERNEL_GAMMA=gamma, $
OUT_NAME='xxx-' + strtrim(gamma, 2) + '-' + strtrim(penalty, 2), $
PENALTY=penalty, POS=array, ROI_IDS=array
endfor在文档中查找STRTRIM;转换为字符串并删除空格是一个有用的例程(2的意思是同时删除前导空格和尾随空格)。
顺便说一句,我可能会使用格式代码指定OUT_NAME,但如果您已经熟悉C格式代码,这些代码可能会更加复杂:
OUT_NAME=string(gamma, penalty, format='(%"xxx-%0.3f-%04d")'), $https://stackoverflow.com/questions/32529033
复制相似问题