2012-03-20 63 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