2017-03-16 1 views
0

내 그림을 내보낼 지 여부를 설정하고 내 보낸 그림의 이름을 설정할지 여부를 스크립트의 시작 부분에 지정하고 싶습니다 : FIGURE_NAME는 숫자 일 때,하지만 난 문자열로 설정하지 않을 경우이 잘 작동Matlab export_fig : 숫자가 아닌 문자열로 변수 파일 이름을 설정하십시오.

EXPORT_FIGURE  = 1; 
    FIGURE_NAME = 'some_string'; 

... 

if EXPORT_FIGURE == 1 
    export_fig(sprintf('%d', FIGURE_NAME), '-png', '-q101'); 
end 

. 이 문제를 해결할 방법이 있습니까? 문자열을 사용할 수 있다면 스크립트의 맨 위에 그 이름을 붙일 수 있습니다.

답변

2

숫자에 해당하는 '%d' 형식 지정자를 사용했기 때문에 문제가 발생했습니다. 문자열에 '%s'을 사용해야합니다.

if ischar(FIGURE_NAME) 
    filename = sprintf('%s', FIGURE_NAME); 
else 
    filename = sprintf('%d', FIGURE_NAME); 
end 

export_fig(filename, '-png', '-q101') 
1

의 sprintf와 % D의 사용이 FIGURE_NAME 그것이 문자열입니다하지 않을 경우, 숫자 인 경우 작동, 정수로 FIGURE_NAME을 설정하려고합니다. 그러므로 문제는 export_fig 함수가 아니라 sprintf 함수입니다.

관련 문제