|
Nester |
Forum-Anfänger
|
|
Beiträge: 29
|
|
|
|
Anmeldedatum: 17.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.04.2018, 18:08
Titel: Excel Datei in GUI laden
|
|
|
|
|
Hallo lieber Forenuser.
Ich habe als blutiger MatLab beginner ein Problem mit GUI.
Ich bekomme aus der Uni etliche Excel Dateien mit über 15 Spalten und ca. 15.000 Zeilen.
Meine GUI soll eine Datei laden und in dem linken Koordinatensystem die ersten ca. 120 Spalten der 9. Spalte darstellen (ergibt eine Ellipse).
Im rechten Koordinatensystem soll die nächste Ellipse mit einem Drop-Down Menü ausgewählt und dargestellt werden.
Das ist mein Code des pusbuttons:
[code]% Programm
function pushbuttonLoadXLSX_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonLoadXLSX (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
loadedData = uigetfile('*.xlsx', 'Wähle xlsx datei: ');
handles.fileName = xlsread(loadedData,1,'I2:J113');
guidata(hObject, handles); [/code]
Mit Hilfe des Debuggers habe ich herausgefunden, das kurzzeitig die Daten in "fileName" gespeichert werden, danach aber weg sind.
Ich muss gestehen, ich weiß nicht was handles etc ist, das ist alles try and error und gaaanz viel youtube.
Brauche dringend Hilfe, da es für eine Abschlussarbeit gedacht ist.
MfG
Beschreibung: |
|
Download |
Dateiname: |
mainGui.fig |
Dateigröße: |
29.26 KB |
Heruntergeladen: |
447 mal |
|
|
|
|
|
Nester |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 29
|
|
|
|
Anmeldedatum: 17.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.04.2018, 08:43
Titel:
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.04.2018, 08:46
Titel:
|
|
Hallo,
in diesem Codeteil sehe ich keine Probleme.
Ein reproduzierbares Beispiel wäre hilfreich (.m + .fig).
Grüße,
Harald
|
|
|
Nester |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 29
|
|
|
|
Anmeldedatum: 17.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.04.2018, 10:10
Titel:
|
|
Danke für deine Antwort !
Im Anhang die beiden Dateien.
MfG
Edit:
Also wie gesagt, kurzzeitig sind die Werte in fileName gespeichert und im Workspace zu sehen. Dann aber wieder weg.
Für später:
Ist es möglich (bzw. für MICH möglich) zu Programmieren, das zusätzlich noch Xcenter, Ycenter, der Winkel der Regression Phi und Xdim und Ydim dort angezeigt werden?
Ich habe mir fit_ellipse bereits rutnergeladen und soweit modifiziert, das ich die Werte alle korrekt erhalte. Mir fehlt "nur" noch die Schnittstelle zum GUI.
Aber das hat ja noch Zeit, die Lösung meines 1. Problems ist aktuell wichtiger ^^'
Danke
Beschreibung: |
|
Download |
Dateiname: |
mainGui.fig |
Dateigröße: |
29.26 KB |
Heruntergeladen: |
418 mal |
Beschreibung: |
|
Download |
Dateiname: |
mainGui.m |
Dateigröße: |
4.84 KB |
Heruntergeladen: |
431 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.04.2018, 10:14
Titel:
|
|
|
|
Nester |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 29
|
|
|
|
Anmeldedatum: 17.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.04.2018, 12:47
Titel:
|
|
Hallo Harald,
danke für den Link.
Ich muss aber gestehen, das er mir nicht weiterhilft.
Warum sind die Werte nur kurzzeitig gespeichert, und dann wieder weg?
Wie kann ich darauf zugreifen?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 30.04.2018, 13:24
Titel:
|
|
Hallo,
Zitat: |
Warum sind die Werte nur kurzzeitig gespeichert, und dann wieder weg? |
Dem ist nicht so. Die Werte bleiben in der Handles-Struktur abgespeichert. Diese ist lediglich nicht im Base Workspace zu sehen, sondern nur in den Callbacks.
Zitat: |
Wie kann ich darauf zugreifen? |
Innerhalb der Callbacks mit handles.fileName.
Grüße,
Harald
|
|
|
Nester |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 29
|
|
|
|
Anmeldedatum: 17.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.05.2018, 17:05
Titel:
|
|
|
|
|
1000 Dank Harald,
Die erste Ellipse wird genau so geplottet, wie sie soll!!!
Jetzt noch 2-3 Sachen, wo ich ebenfalls auf deine Hilfe hoffe ^^'
1. Ich habe die Graphen mit xlabel und ylabel umgenannt. Sobald er aber eine Datei einliest und plottet verschwindet die Beschriftung
[code]
function mainGui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to mainGui (see VARARGIN)
% Choose default command line output for mainGui
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
axes(handles.axes1);
xlabel('Absolute Position [rad]')
ylabel('Drehmoment [Nm]')
axes(handles.axes2);
xlabel('Absolute Position [rad]')
ylabel('Drehmoment [Nm]')
% UIWAIT makes mainGui wait for user response (see UIRESUME)
% uiwait(handles.figure1);
[/code]
2. Der Nutzer meines Programms soll mit Hilfe des Pop-Up Menü's den x-ten Lastwechsel auswählen und dann zeichnen lassen. Hier bin ich endgültig am Ende meines Lateins. Wird das dann im Callback des Pop-Ups geschrieben? und auch dort mit Handles.FileName ?
3. Im Anhang findet ihr eine gekürzte Version meiner Excel Dateien, hier sind nur die Zeiten zu sehen. Anhand der Zeiten lassen sich die Lastwechsel bestimmen. Ein "Block" stellt dabei einen Lastwechsel dar.
ca. Zeile 1-112 sind Lw 1, Zeile 113-224 Lw 2, usw. usw.!
Wie kann ich das in dem Pop-Up Menü unterbringen? Es sind leider nicht immer 110 Zeilen, sondern variiert. Ich hatte mal an eine If-Anweisung gedacht. Also falls der Nutzer Lastwechsel Nr 141 haben möchte, wird nur der Bereich von 141 geplottet.
Ich hoffe ihr versteht wie ich das meine, schwierig in Worte zu fassen.
Danke bis hierhin !
MfG
Fabian
Beschreibung: |
|
Download |
Dateiname: |
MatLabForum.xls |
Dateigröße: |
583.5 KB |
Heruntergeladen: |
417 mal |
|
|
|
Nester |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 29
|
|
|
|
Anmeldedatum: 17.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2018, 09:27
Titel:
|
|
Das Problem der verschwindenden Beschriftung habe ich mit "hold on" gelöst!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.05.2018, 10:18
Titel:
|
|
Hallo,
zu 3.: mit
solltest du den Anfang eines neuen Blocks finden können.
zu 2.
Zitat: |
Wird das dann im Callback des Pop-Ups geschrieben? und auch dort mit Handles.FileName ? |
Ja. Du musst abfragen, was ausgewählt wurde, und basierend darauf die passenden Daten extrahieren und verarbeiten.
Grüße,
Harald
|
|
|
Nester |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 29
|
|
|
|
Anmeldedatum: 17.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.05.2018, 10:34
Titel:
|
|
|
|
|
Danke Harald, werde mich gleich mal daran machen.
Jetzt noch meine, hoffentlich, letzt Frage: ich habe fit_ellipse als template heruntergeladen und soweit bearbeitet, das es die Werte ausgibt, die ich brauche.
Dies sind Xcenter, Ycenter, Xdim, Ydim und Phi!
Ich habe fit_ellipse jetzt einfach mit in mein GUI kopiert (wrsl sehr unsauber, aber für mich am einfachsten). Siehe Anhang.
Die Ergebnisse von fit_ellipse werden in einer Structure gespeichert.
Wie kann ich die im GUI in einer Tabelle darstellen?
Edit: Kannst du mir beim popupmenuLw_Callback etwas mehr Hilfestellung geben?
Ich weiß da nicht weiter. Wenn der Nutzer auf das Popupmenu drückt, soll dort eine Liste mit Zahlen stehen. Diese sind aktuell aber nicht in der Excel Datei angegeben, sondern nur die Zeiten, wie ich sie dir geschickt habe.
Ich weiß schlicht und eifnach nicht, wie ich find(diff(t)>100) anwenden soll :/
Beschreibung: |
|
Download |
Dateiname: |
mainGui.m |
Dateigröße: |
8.59 KB |
Heruntergeladen: |
415 mal |
|
|
|
Nester |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 29
|
|
|
|
Anmeldedatum: 17.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.05.2018, 10:11
Titel:
|
|
Hallo!
Ich bin wieder ein kleines Stückchen weitergekommen.
ellipse_t war ein struct, und mit struct2cell(ellipse_t) habe ich daraus einen Spaltenvektor erzeugt. Diesen habe ich transponiert und somit meinen Zeilenvektor erhalten.
Jetzt habe ich die uiTable soweit formatiert, das die Spalten und Zeilen beschriftet sind.
Die erste Spalte heißt "Lastwechsel". Die erste Zeile 1. Die 1 soll aber unter "Lastwechsel" stehen.
Wenn ich diesen teil "manipuliere" bekomme ich nur Fehlermeldungen.
[code] ellipse_t = struct( ...
'Xcenter',X0_in,...
'Ycenter',Y0_in,...
'Xdim',Xdimx,...
'Ydim',Ydimy,...
'phi',orientation_degree,...
'status','' );
[/code]
Beschreibung: |
|
Download |
Dateiname: |
mainGui.m |
Dateigröße: |
8.78 KB |
Heruntergeladen: |
389 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.05.2018, 11:44
Titel:
|
|
Hallo,
Zitat: |
Wenn ich diesen teil "manipuliere" bekomme ich nur Fehlermeldungen. |
Wie "manipulierst" du, und welche Fehlermeldung bekommst du?
Grüße,
Harald
|
|
|
Nester |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 29
|
|
|
|
Anmeldedatum: 17.04.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.05.2018, 12:48
Titel:
|
|
Hallo,
wie gesagt, ich lese fit_ellipse durch und versuche mit logischem überlegen, es für mich anzupassen. MatLab ist einfach schon zu lange her für mich.
aus:
[code] ellipse_t = struct( ...
'Xcenter',X0_in,...
'Ycenter',Y0_in,...
'Xdim',Xdimx,...
'Ydim',Ydimy,...
'phi',orientation_degree,...
'status','' );[/code]
wollte ich zb. das Status,' ' löschen, und über Xcenter,X0_in,... die lastwechsel einfügen.
zb. so
[code] Lw = 1
% pack ellipse into a structure
ellipse_t = struct( ...
'Lastwechsel', Lw, ...
'Xcenter',X0_in,...
'Ycenter',Y0_in,...
'Xdim',Xdimx,...
'Ydim',Ydimy,...
'phi',orientation_degree,...
);
[/code]
Dann bekomme ich den fehler
Error: File: mainGui.m Line: 193 Column: 9
Unbalanced or unexpected parenthesis or bracket.
wenn ich " ); " hinter "phi' orientation_degree,... schreibe, kommt
Error: File: mainGui.m Line: 193 Column: 5
Expression or statement is incorrect--possibly unbalanced (, {, or [.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.05.2018, 12:52
Titel:
|
|
Hallo,
letzte beiden Zeilen zusammenfassen zu:
Grüße,
Harald
|
|
|
|
Gehe zu Seite 1, 2, 3 Weiter
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
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.
|
|