Вызов функции с изменением входных параметров в цикле Matlab - PullRequest
0 голосов
/ 20 марта 2012

Я поймал себя на проблеме, я знаю, что это не так сложно, но я не мог понять, как это реализовать.У меня есть файл 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 

Я хочу изменить значение i из obj.m_Core_List(1) в obj.m_Core_List (27) внутри цикла for основного файла.Как я могу получить значение функции coreselect, когда я вызываю ее в главном файле m Например, для m = 1 до 70 я хочу, чтобы функция принимала значение i = 1, затем выполняла до команды plot и затем выполняла те же операции, но i =2 и т. Д. Любое предложение будет очень полезно

1 Ответ

1 голос
/ 20 марта 2012

Я не уверен, что прекрасно понимаю ваш вопрос, но я думаю, что вы хотите передать индекс i в функцию CoreSelect и выполнить цикл i от 1 до 27 вне функции. Попробуйте это:

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

for i=1:27,
   PVInv.CoreSelect(WaAc,i);
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...