WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Frage zur GUI Implementierung

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2016, 10:24     Titel: Frage zur GUI Implementierung
  Antworten mit Zitat      
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)



xquer=[0.000129900000000000,0.000232100000000000,0.000414900000000000,0.000741600000000000,0.00136800000000000,0.00223600000000000,0.00424300000000000,0.00765000000000000,0.0143100000000000,0.0231900000000000,0.0435100000000000,0.0776300000000000,0.134380000000000,0.214770000000000,0.283900000000000,0.328500000000000,0.348280000000000,0.348060000000000,0.336200000000000,0.318700000000000,0.290800000000000,0.251100000000000,0.195360000000000,0.142100000000000,0.0956400000000000,0.0579500100000000,0.0320100000000000,0.0147000000000000,0.00490000000000000,0.00240000000000000,0.00930000000000000,0.0291000000000000,0.0632700000000000,0.109600000000000,0.165500000000000,0.225749900000000,0.290400000000000,0.359700000000000,0.433449900000000,0.512050100000000,0.594500000000000,0.678400000000000,0.762100000000000,0.842500000000000,0.916300000000000,0.978600000000000,1.02630000000000,1.05670000000000,1.06220000000000,1.04560000000000,1.00260000000000,0.938400000000000,0.854449900000000,0.751400000000000,0.642400000000000,0.541900000000000,0.447900000000000,0.360800000000000,0.283500000000000,0.218700000000000,0.164900000000000,0.121200000000000,0.0874000000000000,0.0636000000000000,0.0467700000000000,0.0329000000000000,0.0227000000000000,0.0158400000000000,0.0113591600000000,0.00811091600000000,0.00579034600000000,0.00410945700000000,0.00289932700000000,0.00204919000000000,0.00143997100000000,0.000999949300000000,0.000690078600000000,0.000476021300000000,0.000332301100000000,0.000234826100000000,0.000166150500000000,0.000117413000000000,8.30752700000000e-05,5.87065200000000e-05,4.15099400000000e-05,2.93532600000000e-05,2.06738300000000e-05,1.45597700000000e-05,1.02539800000000e-05,7.22145600000000e-06,5.08586800000000e-06,3.58165200000000e-06,2.52252500000000e-06,1.77650900000000e-06,1.25114100000000e-06;];
yquer=[3.91700000000000e-06,6.96500000000000e-06,1.23900000000000e-05,2.20200000000000e-05,3.90000000000000e-05,6.40000000000000e-05,0.000120000000000000,0.000217000000000000,0.000396000000000000,0.000640000000000000,0.00121000000000000,0.00218000000000000,0.00400000000000000,0.00730000000000000,0.0116000000000000,0.0168400000000000,0.0230000000000000,0.0298000000000000,0.0380000000000000,0.0480000000000000,0.0600000000000000,0.0739000000000000,0.0909800000000000,0.112600000000000,0.139020000000000,0.169300000000000,0.208020000000000,0.258600000000000,0.323000000000000,0.407300000000000,0.503000000000000,0.608200000000000,0.710000000000000,0.793200000000000,0.862000000000000,0.914850100000000,0.954000000000000,0.980300000000000,0.994950100000000,1,0.995000000000000,0.978600000000000,0.952000000000000,0.915400000000000,0.870000000000000,0.816300000000000,0.757000000000000,0.694900000000000,0.631000000000000,0.566800000000000,0.503000000000000,0.441200000000000,0.381000000000000,0.321000000000000,0.265000000000000,0.217000000000000,0.175000000000000,0.138200000000000,0.107000000000000,0.0816000000000000,0.0610000000000000,0.0445800000000000,0.0320000000000000,0.0232000000000000,0.0170000000000000,0.0119200000000000,0.00821000000000000,0.00572300000000000,0.00410200000000000,0.00292900000000000,0.00209100000000000,0.00148400000000000,0.00104700000000000,0.000740000000000000,0.000520000000000000,0.000361100000000000,0.000249200000000000,0.000171900000000000,0.000120000000000000,8.48000000000000e-05,6.00000000000000e-05,4.24000000000000e-05,3.00000000000000e-05,2.12000000000000e-05,1.49900000000000e-05,1.06000000000000e-05,7.46570000000000e-06,5.25780000000000e-06,3.70290000000000e-06,2.60780000000000e-06,1.83660000000000e-06,1.29340000000000e-06,9.10930000000000e-07,6.41530000000000e-07,4.51810000000000e-07;];
zquer=[0.000606100000000000,0.00108600000000000,0.00194600000000000,0.00348600000000000,0.00645000100000000,0.0105499900000000,0.0200500100000000,0.0362100000000000,0.0678500100000000,0.110200000000000,0.207400000000000,0.371300000000000,0.645600000000000,1.03905010000000,1.38560000000000,1.62296000000000,1.74706000000000,1.78260000000000,1.77211000000000,1.74410000000000,1.66920000000000,1.52810000000000,1.28764000000000,1.04190000000000,0.812950100000000,0.616200000000000,0.465180000000000,0.353300000000000,0.272000000000000,0.212300000000000,0.158200000000000,0.111700000000000,0.0782499900000000,0.0572500100000000,0.0421600000000000,0.0298400000000000,0.0203000000000000,0.0134000000000000,0.00874999900000000,0.00574999900000000,0.00390000000000000,0.00274999900000000,0.00210000000000000,0.00180000000000000,0.00165000100000000,0.00140000000000000,0.00110000000000000,0.00100000000000000,0.000800000000000000,0.000600000000000000,0.000340000000000000,0.000240000000000000,0.000190000000000000,0.000100000000000000,4.99999900000000e-05,3.00000000000000e-05,2.00000000000000e-05,1.00000000000000e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;];

p=[360,365,370,375,380,385,390,395,400,405,410,415,420,425,430,435,440,445,450,455,460,465,470,475,480,485,490,495,500,505,510,515,520,525,530,535,540,545,550,555,560,565,570,575,580,585,590,595,600,605,610,615,620,625,630,635,640,645,650,655,660,665,670,675,680,685,690,695,700,705,710,715,720,725,730,735,740,745,750,755,760,765,770,775,780,785,790,795,800,805,810,815,820,825,830];
xplot=350:0.5:849.5;

% prompt = 'Eingabe Filename z.B DT-Blue-XE.xlsx, DC-Blue-LED.xlsx, DC-Blue-HM.xlsx, DC-Blue-Halogen.xlsx: ';
% prompt1= 'Datensatz z.B B2:B1001 für 10°, E2:E1001 für 12°, H2:H1001 für 15°...: ';   %z.B B22:B1001
filename = uigetfile;
% filename=input(prompt,'s');
data=get(handels.TextboxWinkel,'String');



% auswahl des Datensatzes
filter=xlsread(filename,data);
filterPlot=filter;
filter=filter(22:10:962);
filter=filter';

% Normierung der Werte
Maxfilter = max (filter);
normfilter = filter./Maxfilter;

% CIE-zeichnen
% Normwerte für Wellenlängen berechnen
nano=p;% Nanometer
n_xquer1=nano.*xquer;
n_yquer1=nano.*yquer;
n_zquer1=nano.*zquer;

k=1.38*10.^(-23); % Blozmankonstante
h=6.626*10.^(-34); % Bolzmanwirkungsquantum
c=299792458; % lichtgeschwindigkeit
lam= 360:5:830; % Wellenlänge

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
           
        end
       
    end
     c=c+1;
end

% bestimmen des Minimalen Abstandes von Punkt zu BBK
mindfilter = min(dfilter);

a=1;
% Rücktransformation zum Temperatutwert in Kelvin
for l=dfilter(1:24500)    
    m=mindfilter-l;
   if (m==0)
   
   
        Farbtemp=a*1+500;
        break
   end
   a=a+1;
end

% Näherung zur Berechnung CCT
xe=0.3366;
ye=0.1735;
A0=-949.86315;
A1=6253.80338;
A2=28.70599;
A3=0.00004;
t1=0.92159;
t2=0.20039;
t3=0.07125;
n=(xfilter-xe)/(yfilter-ye);
CCT=A0+A1*exp(-n/t1)+A2*exp(-n/t2)+A3*exp(-n/t3);
if CCT<=1000
    CCT='NB';
end

xgerade=[0.1756, 0.7347];
ygerade=[0.005294, 0.2653];




plot(handels.plot1,xT,yT,'b') % plot Farbraum
text(xT(20),yT(20),'455')
text(xT(23),yT(23),'470')
text(xT(25),yT(25),'480')
text(xT(27),yT(27),'490')
text(xT(28),yT(28),'495')
text(xT(30),yT(30),'500')
text(xT(31),yT(31),'510')
text(xT(33),yT(33),'520')
text(xT(35),yT(35),'530')
text(xT(37),yT(37),'540')
text(xT(40),yT(40),'555')
text(xT(43),yT(43),'570')
text(xT(45),yT(45),'580')
text(xT(47),yT(47),'595')
text(xT(50),yT(50),'605')
text(xT(55),yT(55),'630')
text(xT(69),yT(69),'700')
grid on;
hold;
plot(handels.plot1,x2T,y2T) % plot BBK
plot(handels.plot1,x2T(5240),y2T(5240),'kx') % plot Weißpunkt
text(x2T(1500),y2T(1500),'2000')
text(x2T(5240),y2T(5240),'5740')
text(x2T(2000),y2T(2000),'2500')
text(x2T(3000),y2T(3000),'3500')
text(x2T(4000),y2T(4000),'4500')
text(x2T(9500),y2T(9500),'10000')
text(x2T(24050),y2T(24050),'25000')
plot(handels.plot1,xfilter,yfilter,'bx','MarkerSize',10);    % plot XE koordinate im Farbraum
text(xfilter,yfilter,num2str(CCT))
plot(handels.plot1,xgerade,ygerade,'b')
title('CIE')
legend('Farbraum','Black Body Kurve','Weißpunkt','CCT')
xlabel('x')
ylabel('y')
ylim([0,0.9])
xlim([0,0.9])


plot(handels.plot2,xplot,filterPlot,'color', [0 0 1]);
grid on;
title('Filter')
xlabel('Nanometers')
ylabel('Intense')
ylim([0,2500])


Danke für jede Hilfe!


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.09.2016, 10:28     Titel:
  Antworten mit Zitat      
Hallo,

die Fehlermeldung deutet auf einen Tippfehler hin: es muss handles statt handels heißen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2016, 10:36     Titel:
  Antworten mit Zitat      
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: ---
     Beitrag Verfasst am: 01.09.2016, 10:37     Titel:
  Antworten mit Zitat      
Ah ich hab den Fehler schon gefunden... Embarassed
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2016, 10:58     Titel:
  Antworten mit Zitat      
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?

Bisherige Formatierung:
Code:


plot(handles.plot1,xT,yT,'b') % plot Farbraum
text(xT(20),yT(20),'455')
text(xT(23),yT(23),'470')
text(xT(25),yT(25),'480')
text(xT(27),yT(27),'490')
text(xT(28),yT(28),'495')
text(xT(30),yT(30),'500')
text(xT(31),yT(31),'510')
text(xT(33),yT(33),'520')
text(xT(35),yT(35),'530')
text(xT(37),yT(37),'540')
text(xT(40),yT(40),'555')
text(xT(43),yT(43),'570')
text(xT(45),yT(45),'580')
text(xT(47),yT(47),'595')
text(xT(50),yT(50),'605')
text(xT(55),yT(55),'630')
text(xT(69),yT(69),'700')
grid on;
hold;
plot(handles.plot1,x2T,y2T) % plot BBK
plot(handles.plot1,x2T(5240),y2T(5240),'kx') % plot Weißpunkt
text(x2T(1500),y2T(1500),'2000')
text(x2T(5240),y2T(5240),'5740')
text(x2T(2000),y2T(2000),'2500')
text(x2T(3000),y2T(3000),'3500')
text(x2T(4000),y2T(4000),'4500')
text(x2T(9500),y2T(9500),'10000')
text(x2T(24050),y2T(24050),'25000')
plot(handles.plot1,xfilter,yfilter,'bx','MarkerSize',10);    % plot XE koordinate im Farbraum
text(xfilter,yfilter,num2str(CCT))
plot(handles.plot1,xgerade,ygerade,'b')
title('CIE')
legend('Farbraum','Black Body Kurve','Weißpunkt','CCT')
xlabel('x')
ylabel('y')
ylim([0,0.9])
xlim([0,0.9])


plot(hadles.plot2,xplot,filterPlot,'color', [0 0 1]);
grid on;
title('Filter')
xlabel('Nanometers')
ylabel('Intense')
ylim([0,2500])
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.09.2016, 11:05     Titel:
  Antworten mit Zitat      
Hallo,

was genau heißt "nicht korrekt dargestellt"?

Im letzten plot-Befehl fehlt bei handles noch ein n.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2016, 11:56     Titel:
  Antworten mit Zitat      
Oh danke, ich habe zwei Bilder angehängt, hoffe das hilft weiter.

Richtig.JPG
 Beschreibung:

Download
 Dateiname:  Richtig.JPG
 Dateigröße:  55.88 KB
 Heruntergeladen:  268 mal
Fehler.JPG
 Beschreibung:

Download
 Dateiname:  Fehler.JPG
 Dateigröße:  39.7 KB
 Heruntergeladen:  273 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.09.2016, 12:48     Titel:
  Antworten mit Zitat      
Hallo,

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
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.