1. 程式人生 > >matlab用迴圈批量生成多個變數,神奇的eval()函式

matlab用迴圈批量生成多個變數,神奇的eval()函式

可以用eval()函式,例如:

b = ones(100);
for i = 1 : 10
<span style="white-space:pre">	</span>eval(['var', num2str(i), '=', 'b(i, :)', ';']);
end


結果得到10個變數var1、var2。。。var10,分別被賦值為b矩陣的每一行。


還可以在eval()函式用呼叫函式,例如:

for i = 1:3
eval(['x', num2str(i), '=', 'sum([2, 3])', ';']);
end
eval()函式也用用在別的函式內部,例如:
for i = 1:5
figure;
imshow(eval(['image', num2str(i)])) %迴圈生成變數名,並用imshow()顯示相應矩陣
end