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

daten (matrix mit messwerten)in ein gui importieren

 

blicknix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.01.2012, 17:40     Titel: daten (matrix mit messwerten)in ein gui importieren
  Antworten mit Zitat      
Hallo,

ich habe hier ein Problem mit em ich nicht klarkomme. ich hab jetzt den ganzen tag mit recherchen verbracht aber in anderen beiträgen nichts gefunden was mir weitergeholfen hat.
ich hab es nicht wirklich drauf mit matlabprogrammierung und deswegen wird sich mein problem vielleicht etwas dumm anhören, ich lege mal los:

ein matlab skript von mir (Druckindizierung.m) verarbeitet mir messdaten, filtert usw., diese werden dann in eine 3-dim matrix geschrieben, diese hat
die dimensionen 7200x104x3, genannt habe ich sie T

ich über ein gui einzelne spalten der matrix adressieren und auswählen können um diese dann plotten zu können. aber ich weiß nicht wie ich diese matrix T so an dieses gui übergeben kann, dass ich dann darauf zugreifen kann. geht das überhaupt?

psl help!

grüße

paul


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 04.02.2012, 18:30     Titel:
  Antworten mit Zitat      
Hey,

natürlich geht soetwas. Nur weiß ich gerade nicht wo dein 7200x104x3 Matrix ausgegeben wird. Liegt die im matlab Workspace oder wo? Prinzipiell kannst du die Matrix aus deinem Skript in die GUI übergeben indem du aus deinem Skript heraus die GUI z.B. startest, also:
Code:

DeineGUI(DeineMatrix);
 

Du kannst natürlich dein Berechnungsskript auch in der GUI implementieren indem du die Berechnung in einem Button Callback definierst oder aufrufst.
Du kannst die Matrix auch via Menu oder Pushbutton über load in deine GUI laden, die du bereits als File auf der Festplatte gespeichert hast...

Greetings
Private Nachricht senden Benutzer-Profile anzeigen
 
blicknix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2012, 10:47     Titel:
  Antworten mit Zitat      
ich habe das versucht, aber ich bin nicht so ganz weitergekommen.

vllt mach ich auch einen fehler im code (ich beschäftige mich mit matlab "learning by doing", daher sind bei mir grundlegende programmierkenntnisse leider nicht ausgeprägt vorhanden und deswegen werde ich höchstwahrscheinlich simple fehler machen... Sad )

das ist die matrix T, die ich dem Gui übergeben will , dazu noch den vektor kwi der die dimension (7200x1) hat

Code:

T=cat(3,pzyl_1_glatt_korrigiert,pzyl_1_klopfen,q_zyl_1_einzel);
 


mit diesem Befehl versuche ich dann T und kwi an das gui zu übergeben und dieses aufzurufen.


versuchs2_gui(T,kwi);


jetztz weiss ich nicht wie ich diese daten im code des versuchs2_gui aufrufen kann.

und wenn ich es geschafft hätte die daten ins gui zu laden, in welchen teil muss ich sie laden?

bisher habe ich eine methode gewählt die mich nur kurzfristig zum erfolg geführt hat:
ich habe die untermatrizen von T einfach abgespeichert in meinem skript, so dass diese dann extern auf der festplatte abgelegt werden:

Code:

save pzyl_1_glatt_korrigiert pzyl_1_glatt_korrigiert;
save pzyl_1_roh_korrigiert pzyl_1_roh_korrigiert;
save pzyl_1_klopfen pzyl_1_klopfen;
save q_zyl_1_einzel q_zyl_1_einzel;
save kwi kwi;
save filename_ohne_endung filename_ohne_endung;
 



dann, habe ich gui diese daten einfach weider in jede Funktion die ich "programmiert" habe reingeladen:

zum beispiel für den button um einen geglätteten zylinderdruckverlauf auszugeben:

Code:

function druckverlauf_glatt_button_Callback(hObject, eventdata, handles)
% hObject    handle to druckverlauf_glatt_button (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
load kwi;
Aufloesungsfaktor=0.1;
SliderWert2 = get(handles.slider,'Value');
SliderWert = round(SliderWert2);
load pzyl_1_glatt_korrigiert;
plot(kwi(1/Aufloesungsfaktor*320 : 1/Aufloesungsfaktor*430),pzyl_1_glatt_korrigiert(1/Aufloesungsfaktor*320 : 1/Aufloesungsfaktor*430,SliderWert),'Color',[0 0 1],'LineWidth',1);
xlabel('alpha [°KW]','FontSize',14,'FontWeight','bold');
ylabel('ZylinderdruckVerlauf [bar]','FontSize',14,'FontWeight','bold');
set(gca,'LineWidth',2,'FontSize',12,'FontWeight','bold');
axis([-40 70 0 100]);
 



da ich Dieses Programm jetzt so erweitern muss, so dass ich nicht weiter in der lage bin die externen daten zu erzeugen und dann ins gui zu laden, brauche ich eine methode die besser funktioniert...

konnte ich mich irgendwie verständlich machen?
(also wie komme ich an die ans gui übergebenen daten mit
versuchs2_gui(T, kwi);
ran?)

vielen dank für eure hilfe!!


edit by denny: bitte die Codeformatierung verwenden. Danke!
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 13.02.2012, 10:57     Titel:
  Antworten mit Zitat      
Hey,

das sieht mir nach grundlegenden Fragen aus. Vll solltest du noch mal einige Sachen in der Hilfe anschauen.

Code:

% Aufruf GUI
versuchs2_gui(T,kwi);

% Verarbeitung in deiner GUI
function versuchs2_gui_Opening_Fcn(hObject,evd,handles,varargin)
% Übergabe der Variablen
handles.T = varargin{1};
handles.kwi = varargin{2};
% Irgendetwas mit den Daten machen
% .............
guidata(hObject,handles)
 

Setze doch mal einen Haltepunkt in der Opening fcn, dann kannste nachvollziehen, wie die Variablen aussehen...

Greetings
Private Nachricht senden Benutzer-Profile anzeigen
 
blicknix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2012, 12:38     Titel:
  Antworten mit Zitat      
ja, das mit den grundlegenden fragestellungen stimmt schon, und ich verbringe auch stunden in der matlab help.... werde aber recht oft einfach erschlagen von den ergebnissen meiner suchanfragen und verliere mich dann im weiteren nachlesen von dingen die ich nicht verstehe....

wenn ich den Code so schreibe wie du mir empfiehlst, bekomme ich in der Console eine Fehlermeldung:
Code:

??? Index exceeds matrix dimensions.

Error in ==> versuchs3_gui>versuchs3_gui_OpeningFcn at 55
handles.T=varargin{1};

Error in ==> gui_mainfcn at 221
    feval(gui_State.gui_OpeningFcn, gui_hFigure, [], guidata(gui_hFigure), varargin{:});

Error in ==> versuchs3_gui at 42
    gui_mainfcn(gui_State, varargin{:});
 

Ich danke dir für deine hilfe!
gibt es denn so eine art how-to, in dem die funktionen und syntax von grundlegenden gui-anwendungen für einsteiger erklärt werden?

Viele Grüße
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 13.02.2012, 18:13     Titel:
  Antworten mit Zitat      
Hey,

wenn du das so machst wie ich es oben beschrieben habe, dann bekommst du ne Fehlermeldung, wenn du der GUI nix übergibst. Dann ist varargin empty. Das musst du entsprechend abfangen...

Greetings
Private Nachricht senden Benutzer-Profile anzeigen
 
blicknix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2012, 21:24     Titel:
  Antworten mit Zitat      
hmm seltsam....
also wenn ich mit
Code:
meinegui(meineDatenmatrix);

der gui meine daten übergebe und zumindes mal der vektor "kwi" auf jeden fall vorhanden ist und nicht nichts ist, versteh ich nicht weiso ich die fehlermeldung bekomme.....
ich glaube ich werde einfach die berechnung selbst in das gui per button integrieren, das scheint mir leichter...
wenn s nicht klappen sollte heule ich weiter rum, aber ich danke dir in jedem fall für deine hilfe!
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 17.02.2012, 15:22     Titel:
  Antworten mit Zitat      
Hey,

Zitat:

Code:
meinegui(meineDatenmatrix);  



ja das ist richtig dann bekommste auch ne Fehlermeldung. Wenn du 2 Variablen übergibst is varargin entsprechend length(varargin)=2. Wenn du eine Variable übergibst entsprechend 1. Da ich im obigen Beispiel 2 Parameter übergeben habe und die auch ohne zusätzliches abfragen einfach verwende ist es kein wunder, dass varargin{2} bei übergabe von nur einem Parameter nicht existiert und ein Fehler entsteht.
Setze doch einfach ein Haltepunkt in der Opening_FCN und schau dir varargin im Workspace an bzw. lies es in der Hilfe nach. Ist eigentlich ein Cell indem die übergebenen Parameter enthalten sind...

Greetings
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.