Verfasst am: 01.09.2016, 10:24
Titel: Frage zur GUI Implementierung
Hallo,
ich habe folgendes Problem, ich habe einen code geschrieben der mit prompt's zur Auswahl der Daten funktionierte.
Nun möchte mein Betreuer, dass ich das mit einer GUI Realisiere.
Die GUI Besteht aus einem Button, einer editbox und zwei axis(plots).
Ich möchte den Inhalt der editbox übernehmen und in dem Programm was abläuft wenn der Button betätigt wird verwenden.
Ich bin dazu einige tuts durchgegangen aber es will nicht funktionieren.
Folgende Fehlermeldung wird mit angezeigt:
Undefined variable "handels" or class "handels.TextboxWinkel".
Error in TestGui>Button_Filename_Callback (line 97)
data=get(handels.TextboxWinkel,'String');
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in TestGui (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)TestGui('Button_Filename_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback
Hier mein Code
Code:
% --- Executes on button press in Button_Filename. function Button_Filename_Callback(hObject, eventdata, handles) % hObject handle to Button_Filename (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
a=1;
xbbk=[];
for i=lam(1:95)
T=(2.898*10^-3)/(i*10^-9); % Berechnung der Farbtemperatur für gegebene Wellenlänge (Wien's Gesetzt)
xbbk(:,a)=(2*pi*h*c^2/((i*10^(-9))^5))*(1/((exp(h*c/((i*10^(-9))*k*T)))-1)); % Planck's Gesetz mit erster Konstante(2*pi*h*c^2)XYZFarbraum
a=a+1;
end
Tb=500; % temperatut Startwert
r=1;
a=1;
b=1;
while r<24501
a=1;
% Berechung von M(Lambda) für jeden Temperatur wert von 500-25000 in 10K % schritten,mit jeder Wellenlänge aus p
for i=lam(1:95)
xbbk1(:,a)=(2*h*c^2/((i*10^(-9))^5))*(1/((exp(h*c/((i*10^(-9))*k*Tb)))-1)); %Planck's Gesetz mit zweiter Konstante(2*h*c^2)Blackbodykurve
a=a+1;
end for w=(1)
maxB= max(xbbk1); % Max des Blackbodywertes
Xneu=xbbk1./maxB; % normieren Des Blackbodywertes
Xbbk=xquer.*Xneu; % X-Wert wird aus NormFarbtafel mit dem Normierten BW Errechnet
Ybbk=yquer.*Xneu; % Y-Wert wird aus NormFarbtafel mit dem Normierten BW Errechnet
Zbbk=zquer.*Xneu; % Z-Wert wird aus NormFarbtafel mit dem Normierten BW Errechnet
sumX(:,b)=sum(Xbbk); %integrieren der Kurven für X
sumY(:,b)=sum(Ybbk); %integrieren der Kurven für Y
sumZ(:,b)=sum(Zbbk); %integrieren der Kurven für Z
b=b+1;
end
Tb=Tb+1; % zähler Temperatur
r=r+1;
end % Blackbodykurve
x2T=sumX./(sumX+sumY+sumZ); % Blackbody x wert
y2T=sumY./(sumX+sumY+sumZ); % Blackbody y wert % Farbraum Variablen
Xt=n_xquer1.*xbbk; % Farbraum X
Yt=n_yquer1.*xbbk; % Farbraum Y
Zt=n_zquer1.*xbbk; % Farbraum Z
xT=Xt./(Xt+Yt+Zt); % x im Farbraum
yT=Yt./(Xt+Yt+Zt); % y im Farbraum
% Messwerte werden mit den Intensitäten der Normspektralwertkurve nach DIN 5033 verrechnet
n_xquer_filter=normfilter.*xquer;
n_yquer_filter=normfilter.*yquer;
n_zquer_filter=normfilter.*zquer;
% Integrieren der einzelnen Kurven um X, Y und Z zu erhalten!
X=sum(n_xquer_filter);
Y=sum(n_yquer_filter);
Z=sum(n_zquer_filter);
% Messpunkte für die Normfarbtafel in x und y
xfilter=X/(X+Y+Z);
yfilter=Y/(X+Y+Z);
% Transformation von x und y in u und v Koordinaten
u=4*xfilter/(-2*xfilter+12*yfilter+3);
v=6*yfilter/(-2*xfilter+12*yfilter+3);
% Transformation von X und Y in U und V Koordinaten
U=4*X/(-2*X+12*Y+3*Z);
V=6*Y/(-2*X+12*Y+3*Z);
% Erstellen der Vektoren
dfilter=[];
c=1; % Zähler % Kürzesterabstand von u und v zu BBK while c<24501 for i= x2T(c) for i1=y2T(c)
uB=4*i/(-2*i+12*i1+3); % Transformation von x zu u Koordinaten
vB=6*i1/(-2*i+12*i1+3); % Transformation von y zu v Koordinaten
dfilter(:,c)=sqrt((uB-u)^2+(vB-v)^2); % bestimmen des Abstandes von BBK zu Xe-Wert
die Fehlermeldung deutet auf einen Tippfehler hin: es muss handles statt handels heißen.
Grüße,
Harald
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 01.09.2016, 10:36
Titel:
Oh danke schön, hat das Problem jedoch nicht behoben, es wird nun angezeigt das die von mir gewählte Datei nicht vorhanden sei.
Error using xlsread (line 132)
XLSREAD unable to open file 'DC-Green-Halogen.xlsx'.
File '\\atmFS1srv\User$\FSchade\Eigene Dateien\MATLAB\DC-Green-Halogen.xlsx' not found.
Error in TestGui>Button_Filename_Callback (line 102)
filter=xlsread(filename,data);
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in TestGui (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in
matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)TestGui('Button_Filename_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 01.09.2016, 10:37
Titel:
Ah ich hab den Fehler schon gefunden...
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 01.09.2016, 10:58
Titel:
Hallo nochmal,
ich habe ein weiteres Problem, die figures welche ich in den axis boxen anzeigen möchte werden nicht korrekt dargestellt. Muss ich eine andere Formatierung verwenden um diese zu gestalten?
der Text landet im falschen Koordinatensystem. Auch hier kann man als erstes Argument angeben, in welchem Koordinatensystem der Text landen soll.
Das gilt letztlich für alle Graphikbefehle, also auch hold, grid, Beschriftungen.
Grüße,
Harald
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.