在循环Matlab中调用输入参数的函数

时间:2012-03-20 13:39:02

标签: function matlab for-loop

我已经陷入了一个问题,我知道它并不困难,但我无法弄清楚如何实现它。我有一个看起来像

的m文件
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

感兴趣的功能是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 

我想在主m文件的for循环中将i的值从obj.m_Core_List(1)更改为obj.m_Core_List(27)。当我在main m文件中调用它时,如何获取函数coreselect的值 例如,对于m = 1到70,我希望函数取i = 1的值然后执行到plot命令然后同样但i = 2,依此类推 任何建议都会非常有用

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解您的问题,但我认为您希望将索引i传递给CoreSelect函数,并将i从1到27之外传递给function obj = CoreSelect(obj, WaAc, i) ... end for i=1:27, PVInv.CoreSelect(WaAc,i); end 功能。试试这个:

{{1}}