2014-12-05 3 views
0

구조체의 변수에서 MATLAB 산점도를 만들기 위해 약간의 코드를 작성하려고합니다. 코드에 구조의 이름을 부여하고 (이 구조가 많이있을 것입니다.) 두 변수의 산점도를 만들려고합니다. 아래의 코드를 실행하면 "??? : Error : File : make_graphs.m : Line : 6 Column : 9 MATLAB 문이나 표현식에서 입력 문자가 올바르지 않습니다."라는 오류 메시지가 나타납니다. MATLAB에서 구조체로 산점도 만들기

str2stuct= input('Please enter the string for the struct e.g. TMB_RUN_1_data:'); 

test1=strcat(str2stuct,'.NDROP_max'); 
test2=strcat(str2stuct,'.input_kappa'); 

scatter($(test2), $(test1)) 

나는 오류 메시지가 아마 내가 MATLAB가 승인하지 않는 방식으로 (내가 MATLAB에서 $에 대한 많은 사용을 찾을 아직했습니다)에 달러 기호를 사용하는 것을 의미 있다고 생각했다.

나는 이런 식으로 시도 :

str2stuct= input('Please enter the string for the struct e.g. TMB_RUN_1_data:'); 
test1=strcat(str2stuct,'.NDROP_max'); 
test2=strcat(str2stuct,'.input_kappa'); 

scatter((test2),(test1)) 

을 그리고이 오류 가지고 :

"??? Error using ==> scatter at 51 
Must supply X and Y data as first arguments. 

Error in ==> make_graphs at 6 
scatter((test2),(test1)) " 

내가 아래 그림과 같이 마지막 줄을 변화와 시도를하지만 브래킷과 같은 오류가 발생했습니다 :

scatter(test2,test1) 

아래와 같이 리터럴 이름을 사용하면 올바르게 작동합니다.

scatter(TMB_RUN_1_data.NDROP_max,TMB_RUN_1_data.input_kappa) 

나는 다른 것들을 시도했지만 나는 그것을 얻지 못하고있다. 나는 산란에 mathworks 페이지를 시도했다 그러나 나가하고있는 무슨을에 가깝다 아무보기도 없다. 나는 정말로 붙어있다.

편집 : 해결책을 찾았지만 이것이 최선의 방법으로 간주되지 않는다는 것을 알고 있습니다. 당신이 할 수있는 경우 간단하게 어떻게 더 잘 할 것이라고 설명합니다. 대답은 경험이 많은 프로그래머가 아닌 바보처럼 겨냥해야합니다.

답변

0

이 만드는 마지막 줄 작동 :

scatter(eval(test2),eval(test1)) 

내가 '평가'가 눈살을 찌푸리게하고 그래서 이것은 아마 지금 작동, 좋은 장기 대답 아니라는 것을 알고 있습니다. 이것은 실제로 MATLAB이 문자열 test1과 test2의 내용을 문제의 라인으로 실제로 읽도록하는 방법 인 것 같습니다.