2013-06-18 6 views
0

계속해서 GUI에 맞서기 위해 다른 도로 블록을 실행했습니다.GUI matlab에서 함수 실행

필자는 파일을 문자열로 열어 GUI를 텍스트 상자에 넣는 버튼을 만들었습니다.

[filename, pathname] = ... 
    uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'File Selector'); 

set(handles.Textbox1, 'string', fullfile(pathname,filename)); 

하지만 지금은 획득 한 파일에 함수를 사용할 수 없습니다. 필자는

str = get(handles.Textbox1,'string'); 
Histogram(str); %Histogram is a function that I created. 

일을 시도하지만 메신저는 다음과 같은 오류

을 받고 ??? ==> 히스토그램을 사용하는 중 오류 입력 인수가 너무 많습니다.

= 94> VarunGUI> pushbutton2_Callback at 94 히스토그램 (str)의 오류;

==> gui_mainfcn = 96의 오류 feval (varargin {:});에 오류가 있습니다.

오류 ==> VarunGUI at 42 gui_mainfcn (gui_State, varargin {:}); VarunGUI ('pushbutton2_Callback'hObject, EVENTDATA, guidata (hObject)) (EVENTDATA hObject)

@ ==> 에

오류 ??? uicontrol 콜백을 평가하는 중 오류가 발생했습니다.

함수 호출에 대한 코드가 잘못되었거나 함수 자체입니까? 호출 된 이미지에서 작동하도록 함수를 변경하는 방법을 이해하는 데 문제가있어 문제가 될 수 있으므로 함수는 다음 코드로 시작됩니다.

function Histogram 
clear; 
clc; 
fid = fopen(''); 
myimage = fread(fid, [512, 683], '*uint8'); 
fclose(fid); 

GUI가 내가 원하는 방식으로 작동하도록하기 위해 특정 변수가 있어야합니까? 질문이 조금 오래 걸렸지 만 나를 도울 때 알아야 할 것이 있으면 가르쳐주세요. 안내 또는 팁이 좋습니다. 감사!

+0

만약'dbstop if error'를 사용해 보았고 정확하게 이상한 것들을 볼 수있게 되었습니까? –

답변

2

당신은 문제가있어 그 전화 Histogram하고 그것을 str를 전달합니다

Histogram(str) 

을하지만 당신은 입력이 기대하는 Histogram를 정의하지 :

function Histogram 

당신이 필요로하는 것은이 같은 것입니다 :

function Histogram(str) 

% do something with str 
+0

와우의 답변이 거의 동기화되었습니다. –

+0

@schorsch Im은 당신이 말한 것처럼 "히스토그램에 입력을 기대하십시오"라고 완전히 확신하지 못했습니다. – user2475404

+0

@m_power ... 디버깅 Matlab ... 연습은 마스터가됩니다 ;-) – Schorsch

3

Histogram 함수에는 입력이 없으므로 호출 할 때 실패합니다. Histogram(str)

1

나는이 모든 것을 가지고 있습니다!

이에 히스토그램 기능을 변경

: MATLAB의 설명서를 읽기 (문자 그대로 복사 아래 무엇 붙여 넣기)

function Histogram(str) %Add input argument 
%clear %DO NOT USE CLEAR in a function, the benefit of using a function is you don't have to %clear anything :) 
clc; 
fid = fopen(str); %Use input argument 
myimage = fread(fid, [512, 683]); %take off *uint8 
fclose(fid); 

를, 그것은 환상적이다, 왜 FREAD 당신이 볼 수 있도록 것이고 UINT8는 함께 가지 마세요 몇 초 만에 (심각하게 20 초 미만으로 답을 줄 것입니다.) 또한 여러분이 가지고있는 다른 모든 매우 기본적인 문제를 해결할 것입니다.

+1

누군가의 마음을 읽는 것 같습니다. 아마도이 새로운 질문에이 답변을 복사/붙여 넣기 할 수 있습니다. – Schorsch

+0

새로 작성한 질문을 지우십시오. 생명의 은인입니다. 감사합니다. – user2475404