2012-03-20 2 views
0

나는 문제에 휩싸였습니다. 어렵지는 않지만 그것을 구현하는 방법을 알지 못했습니다. 나는루프에서 입력 매개 변수가 변경되는 함수 호출하기 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 

처럼 보이는 m 파일 및 관심있는 기능입니다 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 

내가 obj.m_Core_List에서 i 값을 변경하려면을 (1) ~ obj.m_Core_List (27)는 main m 파일의 for 루프 내에 있습니다. main m 파일에서 호출 할 때 함수의 값을 얻는 방법은 무엇입니까 예를 들어 m = 1 ~ 70의 경우 함수가 i = 1의 값을 취하고 plot 명령까지 실행 한 다음 i와 동일하게하려면 = 2 등 에 어떤 제안 정말 도움이 될 것입니다

+0

조지 감사합니다. 그러나 데이터를 플로팅 할 때 데이터 포인트 만 얻지 만 그들을 연결하는 선이 없기 때문에 meshgrid를 사용하여 시도했지만 작동하지 않는 것 같습니다. – mirage

답변

1

1 외부 27에서 루프 i 내가 완벽하게 질문을 이해 모르겠지만, 난 당신이 CoreSelect 함수에 인덱스 i을 전달하려는 생각하고, 함수의. 이것을 시도하십시오 :

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

for i=1:27, 
    PVInv.CoreSelect(WaAc,i); 
end 
관련 문제