2012-03-20 148 views
0

我已經陷入了一個問題,我知道它並不困難,但我無法弄清楚如何實現它。我有一個m文件,看起來像通過改變輸入參數調用函數Matlab

clear; 
PVinv.m_SwF=20e3 

for m=1:1:70; 

PVinv.m_SwF=PVinv.m_SwF+1e3; 
Lmin = PVinv.InductanceDimens(); 
Wa_Ac = PVinv.CoreSizeModel(); 
PVinv.CoreSelect(Wa_Ac); 
[loss_ind_core,loss_ind_copper] = PVinv.InductorLossModel(PVinv.m_L_Selected); 
Total_Inductor_Loss=loss_ind_core+loss_ind_copper 
plot(PVinv.m_SwF,Total_Inductor_Loss,'--gs'); 
hold on 
xlim([10e3 90e3]) 
set(gca,'XTickLabel',{'10';'20';'30';'40';'50';'60';'70';'80';'90'}) 
grid on 
xlabel('Switching Frequency [kHz]'); 
ylabel('Power loss [W]'); 

end 

而且我想改變我的從obj.m_Core_List的值是感興趣的功能是CoreSelect(Wa_Ac)

function obj = CoreSelect(obj, WaAc) 
      obj.m_Core_Available= obj.m_Core_List(i); 
      obj.m_L_Selected.m_Core = obj.m_Core_Available; 

end 

(1) obj.m_Core_List(27)在主m文件的循環中。當我在main m文件中調用函數coreselect時,如何獲得函數coreselect的值 例如,對於m = 1到70,我希望函數採用i = 1的值,然後執行直到繪圖命令,然後與i一樣= 2,依此類推 任何建議將是很有益

+0

謝謝喬治它的工作。但是,當繪製數據我只有數據點,但沒有連接它們的線我嘗試使用meshgrid,但它似乎沒有工作 – mirage 2012-03-20 15:47:45

回答

1

我不知道我理解你的問題很好,但我想你想的索引i傳遞給CoreSelect功能,循環i從1到27的外側的功能。試試這個:

function obj = CoreSelect(obj, WaAc, i) 
... 
end 

for i=1:27, 
    PVInv.CoreSelect(WaAc,i); 
end