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

Matlab GUI Tabelle

 

physicist07
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 17.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2013, 13:17     Titel: Matlab GUI Tabelle
  Antworten mit Zitat      
Hallo Leute Smile

Ich würde wieder mal eure Hilfe benötigen - folgendes: Ich habe pro Probenstücke eine Struktur erstellt, siehe hier

Code:

function probe = probe_iden(num_prob,C)
% probe_iden(num_prob)

%num_prob = input('Probennummer:');

% struct probe definieren
probe = struct('Probennummer', 0, ...
               'Messzeit', C(:,1), ...
               'Kraft', C(:,2), ...
               'Temperatur', C(:,3), ...
               'Umpoler', C(:,4), ...
               'Potential', C(:,5), ...
               'Video_Weg', C(:,6), ...
               'Weg_induk', C(:,7), ...
               'delta_A', C(:,8), ...
               'Weg_DMS', C(:,9), ...
               'Kerblaenge_Secotom', 28.6, ...
               'Kerblaenge_Klinge', 1.5, ...
               'Kerblaenge_Anschw_lang', 0, ...  
               'Kerblaenge_Anschw_kurz', 0, ...
               'Kerblaenge_Anschw_mittel', 0, ...
               'Gesamt', 0, ...  
               'Cycles', 0, ...
               'F_min', 200, ...
               'F_max', 2000, ...
               'Lastverhaeltnis', 0.1, ...
               'Probenlaenge', 60.3, ...
               'Probendicke', 1.5, ...
               'Risslaenge', 0, ...
               'Korrekturfaktor', 0, ...
               'Korrekturfunktion', 0, ...
               'K_min', 0, ...
               'K_max', 0, ...
               'K_krit', 0, ...
               'delta_K', 0);
           
           
% Einleseschleife für:
% -> Kerblaenge_Anschw_lang
% -> Kerblaenge_Anschw_kurz
% -> Cycles
% n=1 bis n=num_pers

%num_prob = Probennummer;
fprintf('Bitte die Daten von der Probe Nummer %g eingeben: \n', num_prob);

for n = 1:num_prob
    probe(n).Kerblaenge_Anschw_lang = input('Kerblaenge Anschwingen lang:');
    probe(n).Kerblaenge_Anschw_kurz = input('Kerblaenge Anschwingen kurz:');
    probe(n).Cycles = input('Cycles:');
    fprintf( '\n' );
end
 



nur möchte ich diese Struktur in einer Tabelle in der graphischen benutzeroberfläche dargestellt haben (GUI) und zwar, dass pro Messwert eine Spalte

was ich dann noch weiters gerne machen möchte, ist, dass ich alle meine Messwerte für zb. die Risslänge in einen Vektor verpacke, damit ich diesen dann plotten kann (das plotten ist überhaupt kein Problem, nur der weg bis ich dort hinkomme)

ich hoffe es kann mir jemand weiterhelfen!

Lg
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 29.07.2013, 13:35     Titel:
  Antworten mit Zitat      
Warum postest du deine Frage hier nochmals, obwohl du im Matheplanet-Forum antworten bekommen hast?
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
physicist07
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 17.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2013, 13:48     Titel:
  Antworten mit Zitat      
weil mich die Antwort leider noch nicht weitergebracht hat und ich die Hoffnung hatte, dass es hier vllt jemand auch beantwortet!?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.07.2013, 13:59     Titel:
  Antworten mit Zitat      
Hallo physicist07,

Cross-Posting ist nicht gerne gesehen in Forums, da es die Zeit derjenigen vergeudet, die Dir freiwillig helfen möchten. Bitte poste deshlab unbedingt einen Link zum anderen Thread, ansonsten geben wir hier eventuell nochmal genau die gleichen Lösungsvorschläge. Danke!

Deine Frage ist sehr allgemein. Natürlich könnte man sich jetzt eine Stunde hinsetzen und ein passendes GUI für Dich programmieren. Das würde dann aber wahrscheinlich nicht genau Deinen Wünschen und Bedürfnissen entsprechen. Deshalb ist es sinnvoller, Du zeigst, was Du bisher geschafft hast und stellst eine konkrete Frage für den jeweils nächsten Schritt.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
physicist07
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 17.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2013, 14:03     Titel:
  Antworten mit Zitat      
ok, sorry.... war insofern keine Absicht

Hier der Link: http://www.matheplanet.at/matheplan.....inttopic.php?topic=184664
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 29.07.2013, 14:22     Titel:
  Antworten mit Zitat      
physicist07 hat Folgendes geschrieben:
ok, sorry.... war insofern keine Absicht

Hier der Link: http://www.matheplanet.at/matheplan.....inttopic.php?topic=184664


Hast du dir schonmal die Matlabhilfe zu uitable angesehen und vielleicht erstmal mit ganz wenigen, einfach Beispieldaten versucht, eine Tabelle zu erstellen?
http://www.mathworks.de/de/help/matlab/ref/uitable.html

In dem Quellcode im Link (warum auch immer du den nicht hier mit der CodeUmgebung reinkopierst) finde ich keine stelle, in der du die uitable erstellst - aber vielleicht übersehe ich da auch was?
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
physicist07
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 17.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2013, 14:31     Titel:
  Antworten mit Zitat      
Code:
% --- Executes when entered data in editable cell(s) in uitable1.
function uitable1_CellEditCallback(hObject, eventdata, handles)
% hObject    handle to uitable1 (see GCBO)
% eventdata  structure with the following fields (see UITABLE)
%   Indices: row and column indices of the cell(s) edited
%   PreviousData: previous data for the cell(s) edited
%   EditData: string(s) entered by the user
%   NewData: EditData or its converted form set on the Data property. Empty if Data was not changed
%   Error: error string when failed to convert EditData to appropriate value for Data
% handles    structure with handles and user data (see GUIDATA)
function probe = probe_iden(num_prob,C)
[row,~] = size(C);
% probe_iden(num_prob)

%num_prob = input('Probennummer:');

% struct probe definieren

probe = struct('Probennummer', 0, ...
               'Messzeit', C(:,1), ...
               'Kraft', C(:,2), ...
               'Temperatur', C(:,3), ...
               'Umpoler', C(:,4), ...
               'Potential', C(:,5), ...
               'Video_Weg', C(:,6), ...
               'Weg_induk', C(:,7), ...
               'delta_A', C(:,8), ...
               'Weg_DMS', C(:,9), ...
               'Kerblaenge_Secotom', ones(row,1)*28.6, ...
               'Kerblaenge_Klinge', ones(row,1)*1.5, ...
               'Kerblaenge_Anschw_lang', 0, ...  
               'Kerblaenge_Anschw_kurz', 0, ...
               'Kerblaenge_Anschw_mittel', 0, ...
               'Gesamt', 0, ...  
               'Cycles', 0, ...
               'F_min', 200, ...
               'F_max', 2000, ...
               'Lastverhaeltnis', 0.1, ...
               'Probenlaenge', 60.3, ...
               'Probendicke', 1.5, ...
               'Risslaenge', 0, ...
               'Korrekturfaktor', 0, ...
               'Korrekturfunktion', 0, ...
               'K_min', 0, ...
               'K_max', 0, ...
               'K_krit', 0, ...
               'delta_K', 0);
           
           
% Einleseschleife für:
% -> Kerblaenge_Anschw_lang
% -> Kerblaenge_Anschw_kurz
% -> Cycles
% n=1 bis n=num_pers

%num_prob = Probennummer;
%fprintf('Bitte die Daten von der Probe Nummer %g eingeben: \n', num_prob);

%for n = 1:num_prob
   % probe(n).Kerblaenge_Anschw_lang = input('Kerblaenge Anschwingen lang:');
   % probe(n).Kerblaenge_Anschw_kurz = input('Kerblaenge Anschwingen kurz:');
   % probe(n).Cycles = input('Cycles:');
   % fprintf( '\n' );
%end
                   
probe = probe_iden(num_prob,C);
myUitable = handles.uitable1;
dataToShow = ['{probe.Messzeit}','{probe.Temperatur}']
set(myUitable,'Data',dataToShow)


habe es bisher damit probiert und auch mit uitable, aber ich versteh nicht, warum mir die werte nicht in der tabelle angezeigt werden
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.07.2013, 14:36     Titel:
  Antworten mit Zitat      
Hallo

und warum setzt Structvariablen in Hochkommas?
Es wäre doch so richtig:
Code:
dataToShow = [{probe.Messzeit},{probe.Temperatur}]


Außerdem was soll das CellEditCallback? Die Funktion wird doch erst aufgerufen wenn du Tabelle editierst?
Private Nachricht senden Benutzer-Profile anzeigen
 
physicist07
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 17.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2013, 14:40     Titel:
  Antworten mit Zitat      
das war ein Versehen... wird mir auch ohne nicht in der Tabelle angezeigt
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.07.2013, 14:42     Titel:
  Antworten mit Zitat      
Wie gesagt was soll da angezeigt werden, wenn du CellEditCallback verwendest, du muss dann deine Tabelle zuerst editieren, damit dieser Callback aufgerufen wird.

Unter Editieren meine ich, dass du erst in deine Tabelle in beliebige Zelle klicken musst (und was auf der Tastatur eintippen) und dann mit der ENTER-Taste abschließend bestätigen. Das würde dein Callback auslösen

Zuletzt bearbeitet von denny am 29.07.2013, 14:57, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
marc-205
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 12.12.12
Wohnort: ---
Version: R2010b
     Beitrag Verfasst am: 29.07.2013, 14:56     Titel:
  Antworten mit Zitat      
Kopier das was du dort hast in die Opening function (dann wird das sofort dargestellt, sobald deine GUI geöffnet wird) deiner GUI oder in einen sinnvoller gewählten Callback und weise das dann mit dem handle der Tabelle zu. (zB handles.table1, je nachdem wie das bei dir heißt)
Code:
set(handles.table1,'Data',dataToShow)


Die einzelnen Werte dann in Vektoren schreiben statt in structs kannst du mit einfachen for-Schleifen.
Private Nachricht senden Benutzer-Profile anzeigen
 
physicist07
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 17.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2013, 14:57     Titel:
  Antworten mit Zitat      
inwiefern editieren? ich hab vor 2 Wochen angefangen zu programmieren und hab leider nicht wirklich viel Ahnung noch :/ ...
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.07.2013, 15:04     Titel:
  Antworten mit Zitat      
Hallo


Unter Editieren meine ich, dass du erst in deine Tabelle in beliebige Zelle klicken musst (und was auf der Tastatur eintippen) und dann mit der ENTER-Taste abschließend bestätigen. Das würde nämlich dein Callback auslösen

Zitat:
ich hab vor 2 Wochen angefangen zu programmieren und hab leider nicht wirklich viel Ahnung noch :/ ...


Du willst sagen dass sind deine erste Erfahrungen im Programmieren? Dann bitte fleißig in die Doku reinschauen (besonders Getting Started Kapitel sind empfehlenswert) und zuerst an kleinen Bespielen das Vorgehen nachvollziehen, bevor man ans große Problem rangeht.
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 - 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.