2013-08-18 2 views
2

에서 PARAM 세트 I은하게 Matlab 블록의 값을 변경하기 위해서는, 매트랩 배열

set_param('model/V','Amplitude','100') 

V의 값이 100 인 않지만 제가

for i=1:10 
    set_param('model/V','Amplitude','P(i)') 
    ... 
end 

같은 IT한다면 V의 값을 P(i)으로 저장합니다. 그러나 20 x 1의 P 매트릭스의 i 번째 요소에 액세스하려면 P(i)으로 참조해야합니다. 내 오류가 무엇입니까?

답변

3

변경하여 문자열 값 -

set_param('model/V','Amplitude',num2str(P(i))); 

는 또한 P (20)의 '모델/V'의 값을 설정한다, 즉 마지막. (단지 예) model/V1, model/V2,...model/V20에 대한

set_param(['model/V' num2str(i)],'Amplitude',num2str(P(i))); 

:

당신은 현재 블록을 통해 루프를 너무 좋아

뭔가를 할 수 있습니다.

+0

오 작품. 하지만 왜 그것을 문자열로 변환해야합니까? 그냥 궁금해서 – Santosh

+1

@HS 그럼 대부분의 시뮬 링크 블록의'ObjectParameters' 값을 설정하는 방법입니다. – P0W

+2

이 대답은 변수 P의 i 번째 요소의 숫자 값을 매개 변수 대화 상자에 넣으려는 것으로 가정합니다. 일반적으로 그것은 당신이하고 싶은 것이 아닙니다. 일반적으로 대화 상자에 문자열 'P (i)'를 입력하여 모델을 매개 변수화하려는 경우 (원래 질문의 코드가 수행하는 것), 모델이 시뮬레이션 될 때 변수 P와 i가 MATLAB 작업 공간에 있다고 가정하면, Simulink는 그 시간에 숫자 값을 선택합니다. –