2013-03-17 1 views
1

matlab을 사용하여 입력란에 입력 한 특정 방정식에 대한 데카르트 좌표에서 컬을 찾으려고합니다. CLI에서는 다음 방정식을 사용하여 작동했습니다 : curl([2*x+3*y, 2*y, 2*z], [x, y, z])matlab에서 정적 텍스트 구성 요소에 컬 응답을 전달하는 방법

GUI를 사용하여 하나의 텍스트 상자를 만들었습니다 (x 계수라고 가정 해 봅시다) 정적 텍스트 레이블이 대답을 표시하고 푸시 버튼이 트리거됩니다 내 코드.

텍스트 상자 태그는 inputTxt를

정적 텍스트 lable가 태그 inputValue의

입니다 버튼 콜백은 다음과 같습니다

txtValue=get(handles.inputTxt, 'String'); 
set(handles.inputValue, 'String', curl([textValue*x, 0, 0], [x, y, z])); 

버튼을 누르면 나는 땡 소리를들을 수 매트랩 cli에서 오류가 발생하고 아무것도 정적 텍스트 레이블에 나타납니다.curl([2*x+3*y, 2*y, 2*z], [x, y, z]) 동일한 결과 (딩 소리)가 나고 레이블 텍스트에 아무 것도 나타나지 않습니다.

미리 감사드립니다.

+0

'curl'의 숫자 출력을 문자열로 먼저 변환 해 보셨습니까? 예를 들어'num2str'을 사용하셨습니까? – Jonas

답변

0

mmounirf, 당신은 변경 시도 할 수 있습니다 : 이것에

txtValue=get(handles.inputTxt, 'String'); 
set(handles.inputValue, 'String', curl([textValue*x, 0, 0], [x, y, z])); 

을 :

txtValue=str2num(get(handles.inputTxt, 'String')); 
set(handles.inputValue, 'String', num2str(curl([txtValue*x, 0, 0], [x, y, z]))); 

당신은 또한 오류를하시기 바랍니다 게시 할 수 있습니까? 기본적으로 숫자로 변환해야하는 편집 상자에서 문자열을 가져 오는 중입니다. 그런 다음 텍스트를 설정할 때 curl에서 얻은 숫자를 문자열로 변환해야합니다. 또한 txtValuetextValue으로 변경 했으므로 오류가 발생할 수도 있습니다.

+0

답변 해 주셔서 감사합니다. 실제로 처음부터 코드 문제를 해결하려고 했으므로 실제로 작동하지 않았습니다. 이제 필요한 것은 정적 텍스트 lable에 표시된 컬 결과를 얻는 것입니다. 그래서 나는 컬트 함수의 결과에 문자열 속성을 설정하기 위해 버튼에 콜백을 추가했습니다. ''을 Syms xyz' curlAns = 컬 ([2, 3, 4], [X는, Y, Z])'' 세트 (handles.inputValue '문자열'num2str (curlAns)) ' – mmounirf

+0

오류를 게시 할 수 있습니까? – Justin

+0

> 'sym'유형의 입력 인수에 대해 정의되지 않은 함수 'max'. num2str의 오류 (줄 83) > xmax = double (max (abs (x (:)))); > 테스트에서 오류가 발생했습니다.> pushbutton1_Callback (line 106) > set (handles.inputValue, 'String', num2str (curlAns)); > gui_mainfcn의 오류 (줄 96) > feval (varargin {:}); > 테스트 오류 (줄 42) > gui_mainfcn (gui_State, varargin {:}); 는> (hObject, EVENTDATA) 테스트 ('pushbutton1_Callback', hObject, EVENTDATA, GUI> 데이터 (hObject)) > 오류 콜백 – mmounirf

1

답변을 찾았지만 제대로 작동했습니다.

는 txtAns가 정적 텍스트 lable가 그것을해야 (푸시 버튼을 클릭 한 후 다음과 같은 대답을 보여줍니다 배치되는 경우

syms x y z; 
set(handles.txtAns, 'String', char(curl([x^3*y^2*z, y^3*z^2*x, z^3*x^2*y], [x, y, z]))); 

char(curl([x^3*y^2*z, y^3*z^2*x, z^3*x^2*y], [x, y, z])); 

전체 코드 사용 정적 텍스트로 컬 결과를 전달하려면 위의 선은 푸시 버튼 콜백에 표시)

행렬 [(x^2 * z^3 - 2 * x * y^3 * z) (x^3 * y^2 - 2 * x * y * 3 (-2 * x^3 * y * z + y^3 * z^2)]

관련 문제