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