Re: [问题] eval搭配imshow时,包含参数'border'

楼主: ejialan (eji)   2018-06-22 08:39:36
※ 引述《james8866 (James)》之铭言:
: 请教各位MATLAB高手一个问题...
: 如果不用eval的话,我的指令长这样:
: imshow(F1,'border','tight')
: imshow(F2,'border','tight')
: ...
: imshow(F7,'border','tight')
: 但是我希望用循环搭配eval写:
: for p=1:7
: eval(['imshow(F',num2str(p),','border','tight')']);
: end
: 很明显MATLAB直接用红字标示错误
: Unexpected MATLAB expression.
: 但我不太懂该如何处理eval里面的'border'这种参数
: 麻烦各位高手不吝赐教
: 谢谢!
eval是把后面喂的字串当作指令执行
当你想要执行的指令有包含字串时
就要再包一个单引号如下
for p=1:7
figure
eval(['imshow(F',num2str(p),',''border'',''tight'')']);
end
多包个figure否则前图会被后图盖过
更简单的作法是一开始命名变量时就不要用F1,...,F7
改用F{1},...,F{7}
这样就不用eval,也不用烦恼后面字串要怎么变才不会出错
for p=1:7
figure
imshow(F{p},'border','tight')
end
作者: james8866 (James)   2018-06-22 10:53:00
谢谢ejialan,问题已解决,太感谢了!!!!

Links booklink

Contact Us: admin [ a t ] ucptt.com