2012-09-23 66 views
2

可以說你有一些功能運行的功能,並在MATLAB保存多個輸出,不同的輸入

x = foo(alpha, beta); 

,你想測試不同的阿爾法值的功能,同時與相關聯的名稱保存不同的x值不同的alpha值。

例如,如果alpha = 1:1:10; 然後,然後我想x_1 , x_2 ,........,x_9 , x_10保存爲單獨的結果

我試着運行不同的迴路等,但我無法弄清楚如何保持x值被替換

回答

2

有幾種方法可以做到這

例如,如果你想將結果保存到磁盤,您可以運行

alpha = 1:10; 

for ii=1:length(alpha) 

    x = foo(alpha(ii),beta); 

    %# save to disk 
    save(sprintf('run_%i.mat',ii),'x'); 

end 

相反,如果你想存儲所有的輸出,這樣就可以繪製,例如,你可以將它們存儲在一個數組

alpha = 1:10; 
x = zeros(size(alpha)); 

for ii=1:length(alpha) 

    x(ii) = foo(alpha(ii),beta); 

end 

%# now you can plot the results 
plot(alpha,x) 

注意的是,上述假設的foo輸出是標量。如果輸出總是m-by-n陣列,則初始化xzeros(m,n,length(alpha)),並將每個循環分配爲x(:,:,ii)。如果輸出是不同大小的數組,則將x初始化爲單元陣列,如x = cell(size(alpha)),並將foo的輸出指定爲x{ii}

+1

太棒了!謝謝你給我展示兩種方式 – pyCthon