Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Robotik mit MATLAB

Studierende:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

slider GUI

 

creme
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 10.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2020, 20:38     Titel: slider GUI
  Antworten mit Zitat      
Servus leutz,

ich habe in meiner GUI einen slider eingefügt. Der funktioniert auch soweit. Ich würde aber gern im Slider_Value den Wert sehen auf welchem ich gerade stehe. Diese Verbindung bekomme ich nicht hin. Der Wert erscheint auch nicht auf der GUI.

Die GUI wurde mit Guide erstellt.

Gruß Cool
Private Nachricht senden Benutzer-Profile anzeigen


creme
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 10.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2020, 22:33     Titel:
  Antworten mit Zitat      
Anbei gleich noch eine Frage.

Ich habe mir soeben noch den App Designer angeschaut. Allerdings wirft dieser gleich ein paar Fragen auf Crying or Very sad

Wenn ich in GUIDE eine Create oder Callback function habe sieht die function so aus

Code:
function Einlesen_Pushbtn_Callback(hObject, eventdata, handles)


Hier bekomme ich drei Variablen übergeben.

Im AppDesigner sieht das allerdings so aus
Code:
function Daten_Einlesen(app, event)


ist hier "hObject" im AppDesigner das "app" und "handles" das "event"?

warum werden mir im GUIDE drei Variablen und im APPDesigner nur zwei übergeben?

Ich hoffe jemand kann mir helfen
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ich bin mir nicht sicher, was du mit Slider_Value meinst. Falls es die Eigenschaft Value des Sliders ist: du brauchst ein separates Text-Element und musst im Callback des Sliders die Eigenschaft setzen des Textfeldes setzen.

Bei App Designer enthält app alle Informationen zur Anwendung, insbesondere also das, was früher handles und hObject war. Zum Einstieg wäre meine Empfehlung, das interaktive Tutorial innerhalb des App Designer durchzugehen:
Code:
web(fullfile(docroot, 'matlab/creating_guis/create-a-simple-app-or-gui-using-app-designer.html'))

und dann "Open Example".

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
creme
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 10.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2020, 10:46     Titel:
  Antworten mit Zitat      
Hallo Harald,

verstehe ich das richtig dass dann z.b.
Code:
handles.output
in AppDesign dann zu
Code:
app.output
geändert werden muss?

Denn so wie der Code momentan dasteht kann ich ihn nicht 1:1 in AppDesign kopieren.
Da der Code, bis auf ein paar optische Mängel, funktioniert möchte ich den Aufwand möglichst gering halten.

Also mit slider_value meinte ich eigentlich den numerischen Wert. Wenn ich den slider von rechts nach links bewege sollte mir in einem Feld auf der GUI angezeigt werden auf welchem Wert ich gerade stehe. Zum Beispiel ganz links dann 0 und ganz rechts dann 360, wenn der slider mir die Phase anzeigen soll.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
creme
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 10.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2020, 11:22     Titel:
  Antworten mit Zitat      
Hallo,

Code:
function Einlesen_Pushbtn_Callback(hObject, eventdata, handles)
% hObject    handle to Einlesen_Pushbtn (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

[FileName0, PathName0]=uigetfile({'*.txt'}, 'Pruefergebnis auswaehlen');  

if FileName0~=0
Ausgangsdaten= textread([PathName0 FileName0],'%s','delimiter','\n','whitespace','');

data=Ausgangsdaten(24:end-2);
 
 for i=1:(size(data,1)/2-1) % Anzahl Zeilen von X bzw. Y
     a=strsplit(data{i});
     b=strsplit(data{i+size(data,1)/2+1}); % Beginn von X
     if i~=size(data,1)/2-1 % Grenze zwischen Y und X
      if size(strsplit(data{i}),2)~=size(strsplit(data{i+1}),2)
          a(end)=[];
          b(end)=[];
      end
     end
           Matrix.Y(i,:)=a;
           Matrix.X(i,:)=b;
 end


Matrix.X=str2double(Matrix.X);
Matrix.Y=str2double(Matrix.Y);
X=Matrix.X(:,2:end-1);
Y=Matrix.Y(:,2:end-1);

Z=complex(X,Y);

handles.X=X;
handles.Y=Y;
handles.Z=Z;

Bereich_x=str2num(get(handles.Scale_X,'String'));
Bereich_y=str2num(get(handles.Scale_Y,'String'));

vektor_x=(0:(Bereich_x/size(handles.X,2)):(Bereich_x-(Bereich_x/size(handles.X,1))));
handles.vektor_x=vektor_x;
% Skalierung des Bereichs des Scans auf vorgegebene Werte
vektor_y=(0:(Bereich_y/size(handles.Y,1)):(Bereich_y-(Bereich_y/size(handles.Y,1))));
handles.vektor_y=vektor_y;

axes(handles.axes1)
imagesc(handles.vektor_x,handles.vektor_y,real(Z)) ;  % Realteil
ax = gca;
ax.YDir = 'normal' % Richtung vertikal korrigieren
title('Realteil')
xlabel('Horizontale Position in mm');
ylabel('Vertikale Position in mm');
colormap gray;

axes(handles.axes2)
imagesc(handles.vektor_x,handles.vektor_y,imag(Z)) ;  % imaginary part
ax = gca;
ax.YDir = 'normal' % Richtung vertikal korrigieren
title('Imaginärteil','Interpreter','Latex')
xlabel('Horizontale Position in mm');
ylabel('Vertikale Position in mm');
colormap gray;

axes(handles.axes3)
imagesc(handles.vektor_x,handles.vektor_y,abs(Z)) ;  % Betrag
ax = gca;
ax.YDir = 'normal' % Richtung vertikal korrigieren
title('Betrag')
xlabel('Horizontale Position in mm');
ylabel('Vertikale Position in mm');
colormap gray;

axes(handles.axes4)
imagesc(angle(Z)) ;
imagesc(handles.vektor_x,handles.vektor_y,angle(Z)) ;  % Realteil
ax = gca;
ax.YDir = 'normal' % Richtung vertikal korrigieren
title('Phase')
xlabel('Horizontale Position in mm');
ylabel('Vertikale Position in mm');
colormap gray;

else
    errordlg('Es wurde keine Datei ausgewählt!','Interpreter','Latex')
end

guidata(hObject, handles);
 


das wäre mein Code zum einlesen einer datei... ich erhalte dann auf vier achsen schaubilder... überall wo
Code:
steht hab ich nun app ergänzt bekomme aber in diesem Teil eine Fehlermeldung
Code:
handles.X=X;
handles.Y=Y;
handles.Z=Z;


Unrecognized property 'X' for class 'app1'.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 22.178
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.10.2020, 15:40     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Denn so wie der Code momentan dasteht kann ich ihn nicht 1:1 in AppDesign kopieren.

Ich würde auch eher das Migration Tool verwenden, was innerhalb App Designer verlinkt ist.

Zitat:
Wenn ich den slider von rechts nach links bewege sollte mir in einem Feld auf der GUI angezeigt werden auf welchem Wert ich gerade stehe.

Dann wie vorgeschlagen. Sollte weder in GUIDE noch in App Designer ein Problem sein. In App Designer ist es aber mit der ChangingFcn deutlich leichter, den Wert schon aktualisieren zu lassen, während man zieht.

Zitat:
Fehlermeldung Unrecognized property 'X' for class 'app1'.

Was ist X denn? Wenn es in GUIDE selbst angehängt worden ist, muss es in App Designer in einem properties Block als Eigenschaft definiert werden, siehe z.B. hier:
https://www.mathworks.com/help/matl.....acks-in-app-designer.html

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
creme
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 10.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2020, 15:47     Titel:
  Antworten mit Zitat      
Hallo Harald,

Das war genau das was ich versucht habe. Das hat auch funktioniert aber dann kommt schon die nächste Fehlermeldung bei scale_x und scale_y...

Den Code auf app designer zu übertragen scheint irgendwie schwierig zu sein.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 22.178
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.10.2020, 15:54     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
dann kommt schon die nächste Fehlermeldung bei scale_x und scale_y...

Wenn du Hilfe bei der Behebung benötigst, müsstest du die Fehlermeldung schon hier reinkopieren.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
creme
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 10.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2020, 16:25     Titel:
  Antworten mit Zitat      
Hallo Harald,

im Anhang ist ein Screenshot.
Code:
und
Code:
stehen ebenfalls wie X und Y in den properties.

Des Weiteren habe ich zuvor überall wo vorher handles. stand app. geschrieben.

Danke im Voraus

fehlermeldung.PNG
 Beschreibung:

Download
 Dateiname:  fehlermeldung.PNG
 Dateigröße:  26.32 KB
 Heruntergeladen:  9 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 22.178
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.10.2020, 16:50     Titel:
  Antworten mit Zitat      
Hallo,

dann lass dir doch das, was du als Argument an str2num ausgibst, separat anzeigen?

Die get-Syntax war schon bei GUIDE veraltet. Stattdessen würde ich
Code:
app.ScaleX.String

verwenden.

Für numerische Daten, die eingegeben / angezeigt werden sollen, gibt es in App Designer speziell ein numeric edit field. Meine Empfehlung wäre, das zu verwenden. Dann sparst du dir nämlich du Umwandlung und bekommst eine vernünftige Fehlerbehandlung, falls jemand statt numerischer Werte Unsinn eingibt.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
creme
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 10.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2020, 19:48     Titel:
  Antworten mit Zitat      
Hallo Harald,

könntest du mir sagen wie das im Detail aussieht? Crying or Very sad
Meinst du zusätzlich zum slider dann noch ein Anzeigefeld?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 22.178
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.10.2020, 20:44     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Meinst du zusätzlich zum slider dann noch ein Anzeigefeld?

Ob es um den Slider geht, weiß ich nicht. Es geht mir um ScaleX. Ob das mit dem Slider zu tun hat und was, weiß ich nicht.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
creme
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 10.07.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2020, 16:30     Titel:
  Antworten mit Zitat      
Zitat:


Die get-Syntax war schon bei GUIDE veraltet. Stattdessen würde ich
Code:
app.ScaleX.String

verwenden.

Für numerische Daten, die eingegeben / angezeigt werden sollen, gibt es in App Designer speziell ein numeric edit field. Meine Empfehlung wäre, das zu verwenden. Dann sparst du dir nämlich du Umwandlung und bekommst eine vernünftige Fehlerbehandlung, falls jemand statt numerischer Werte Unsinn eingibt.

Grüße,
Harald


Es wird immer noch der gleiche Fehler angezeigt. Crying or Very sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 22.178
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.10.2020, 18:40     Titel:
  Antworten mit Zitat      
Hallo,

ich hatte dir bereits einen Vorschlag gemacht, den du anscheinend noch nicht umgesetzt hast.
Zitat:
dann lass dir doch das, was du als Argument an str2num ausgibst, separat anzeigen?


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2020 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.