여기 상황이있다 : 나는 함수가 상수 입력 길이 (즉 nargin(fun)>=0
이다)이다 fun
을 처리받는 함수를 만들 필요가 , 입력에 약간의 변형을 수행하고 그런 다음 fun
으로 전화하십시오. 의사 코드 :입력 인수의 주어진 수의 함수를 만듭니다
function g = transformFun(fun)
n = nargin(fun);
g = @(v_1, ..., v_n) ...
% ^NOT REAL MATLAB - THE MAIN PROBLEM
fun(someCalculationsWithSameSizeOfOutput(v_1,...v_n){:});
% CAN BE ACHIEVED WITH TEMPORARY CELL IN HELPER FUNCTION^
end
: 출력 기능의 핸들 (g = transformFun(concreteFun)
는) 다음 함수가 일정한 길이라는 사실에 의존하는 다른 코드로 전달된다 (nargin(g)>=0
를 가정), 따라서 가변 input-length 함수는 받아 들일 수 없다 ("쉬운"해결책).
이 변환은 모든 가능한 인수 (n
은 무제한 임)와 함께 많은 함수와 함께 호출되기 때문에 가능한 많은 가능성을 다루는 것도 불가능합니다.
달성하기위한 간단한 방법이 있습니까?
[인터넷을 몇 시간 동안 검색했지만 더 이상 사용되지 않는 inline
기능과 관련된 불쾌한 해킹이 발생할 수 있습니다. 어쩌면 나는 틀린 용어가있다.]
'g '는'nargin'으로 질의 할 수 있어야합니까? – Suever
당신의 말씨가 문제를 더욱 복잡하게 만들고 있다고 생각합니다. 당신은'재미'가 ** 변수 ** 입력 양을 처리 할 수 있도록하고 ** 상수 **는 사용할 수 없길 원합니다, 맞습니까? –
@Suever 맞아요. –