2012-02-27 5 views
4

일부 함수는 Matlab Coder에서 실행될 때 입력이 상수이어야합니다.상수 및 Matlab 코더

function foo = subsubfunction(x,y)    
     [B,A]=butter(1,x/y); 

'모든 입력이 일정해야합니다'오류를 반환합니다 나는 그것을 입력가 문제 상황에 대한 예로서 전에 상수로 입력을 선언 할 수있는 방법을 찾고자

x 및 y를 상수로 선언하여 butter()가 행복해 지도록 어떻게 선언합니까? 나는 많은 해결책을 시도하고 불행하게도 정말로 만족스러운 것을 발견하지 못했습니다. 명령 행 조작 coder.newtype('constant',x)을 사용할 수 있으면 모든 것을 단순화합니다.

+0

실제로 상수이거나 벡터/배열이 아닌 하나의 값을 의미합니까? 'numel' 함수를 사용할 수 있습니다 ... – Smash

+0

안녕하세요. 답에 감사드립니다! 그러나이 문제를 해결하기 위해'numel '을 사용할 수 있다는 것을 어떻게 의미합니까? 어떤 식으로 입력이 일정하다는 것을 보장 할 수 있을까요? –

답변

2

함수에 butter이 상수 입력을 전달한다는 것을 알 수 있도록 함수에 coder.const을 사용하십시오. 설명서는 here입니다.

function foo = subsubfunction(x,y)    
    [B,A]=coder.const(@butter,1,x/y); 

: 당신은 생성 된 코드에 x/y의 값을 변경할 수 없습니다. xy을 개별적으로 변경할 수 있지만 두 숫자의 비율은 변경할 수 없습니다.

+0

참조하는 문서에 로그인이 필요합니다.이 문서가 유사한 지 확인하고 링크를 업데이트하십시오. http://www.mathworks.nl/help/simulink/slref/coder.const.html –

+0

감사합니다 @DennisJaheruddin. 링크를 업데이트했습니다! –