문제

내 Matlab M-File에서 나는 다음과 같은 변수를 만들기 위해 일부 논리 (String concat)를 사용하고 있습니다.

c = 'CalcPrediction(1,10)'

즉, 함수와 일부 매개 변수 인 문자열이 있음을 의미합니다. 그 기능 호출을 어떻게 할 수 있습니까?

실행 시도 (c) 결과 :

>> run(c)
??? Error using ==> run at 71
CalcPrediction(1,10) not found.

참고 : 실행 (c) 매개 변수가 없으면 잘 작동합니다. 예를 들어 C = 'calcprediction'; 실행 (c);

도움이 되었습니까?

해결책

당신이 찾고있는 명령은입니다 eval() 대신에 run()

다른 팁

실제로 스크립트를 보지 않으면 일반화하기가 어렵지만 ...

Squareroot가 포함 된 M 파일 인 경우 :y=sqrt(x)

그런 다음 실행 :

x=[2,0];

c='squareRoot';

run(c);

제공 :

y =

1.4142 0

이 예는 선언 된 변수를 사용하도록 스크립트를 정의 할 수 있다고 말합니다.x 이 경우) 그런 다음 스크립트를 실행하기 전에 변수를 선언합니다.

스크립트가 없으면 매개 변수로 무엇을하고 있는지 모르겠습니다. 이것이 질문에 답하지 않으면 스크립트를 게시하십시오.

당신은 사용하고 싶습니다 str2func. 이 함수는 문자열을 사용하여 매개 변수로 호출 할 수있는 함수 핸들러를 반환합니다. 링크 된 페이지에서 예제를 확인하십시오.

fh = str2func('CalcPrediction')
fh(1, 10)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top