2017-01-22 7 views
0

이미 정의 된 문자열에서 기호 변수를 만드는 방법이 궁금합니다. 이 오류를 실행 한 후 등장사용자 정의 문자열을 사용하여 기호 변수 정의

N=2 
for i=1:N 
    syms sprintf('r%g',i) 
end 

: symfun.parseString (라인 50)
하지 유효한 변수 이름을 사용

오류 사실은 우리가이 코드를 실행할 수 있도록하는 데 도움이 될 것입니다.

syms 오류 (줄 166)
[name, vars] = symfun.parseString (x);

나는 r1r2을 두 개의 기호 변수로 만들고 싶습니다.

답변

2

syms에 문자열을 전달하려는 경우 function syntax rather than the command syntax을 사용해야하기 때문에 문제가 발생했습니다. 현재 구문 (명령 구문)에서 MATLAB은 'sprintf('r%g',i)'이라는 심볼릭 변수를 만들려고 시도하고 실제로 sprintf을 평가하지 않습니다.

대신 함수 구문은 다음과 같아야합니다. 또한 형식 문자열에 %d을 사용하여 i이 정수인지 확인하십시오. 그렇지 않으면 유효한 변수 이름이 아닙니다.

syms(sprintf('r%d', i)) 
+0

감사합니다. –