最進看大牛程序有一段
eval(['temp(:,:,ori) = bg_r' num2str(r) '{' num2str(ori) '};']);
eval函數是以字符串的形式運行代碼
下面是matlab官方的注釋:
eval(expression) evaluates the MATLAB code in the string expression. If you use eval within an anonymous function, nested function, or function that contains a nested function, the evaluated expression cannot create a variable.
其中一個好處就是假如我要對a1,a2,a3,a4,……,a100分別賦予1,2,3,……,100。這時eval就發揮作用了。
for i=1:100
eval(['a' num2str(i) '=' num2str(i)]);
end
當然還有其他例子,比如批量存數據或圖片文件等等。
那么開始提到的例子也就好解釋了。
注意eval中的中括號在兩個以上字符串出現時一定要有,起連接作用。
如:
input:[‘hello’ ‘world’]
output:helloworld