Verfasst am: 27.01.2014, 06:18
Titel: Matrix aus Schleife erstellen und als .txt exportieren
Hallo liebe Matlab-Freunde,
ich komme leider an einem Punkt nicht weiter. Und zwar habe ich mehrere Radiobuttons mit denen ich verschiedene Messwertreihen graphisch darstelle. Jeder Klick eines Radiobuttons initiiert auch gleichzeitig eine Berechnung von 3 Kenngrößen, das funktioniert auch wunderbar. Hier der Code:
Code:
% --- Executes when selected object is changed in datasetsbuttongroup2. function datasetsbuttongroup2_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to the selected object in datasetsbuttongroup2 % eventdata structure with the following fields (see UIBUTTONGROUP) % EventName: string 'SelectionChanged' (read only) % OldValue: handle of the previously selected object or empty if none was selected % NewValue: handle of the currently selected object % handles structure with handles and user data (see GUIDATA)
data = handles.data;
N = get(hObject,'String');
Index = sscanf(N, '%d');
Diese 3 Kenngrößen speichere ich in der "wertematrix" ab und lasse die Werte in einer Tabelle anzeigen. Jetzt zu meinem Problem: Wie schaffe ich es, dass die Tabelle nicht nur die aktuellen Werte für den geklickten Radiobutton anzeigt sondern dynamisch (d. h. beim Durchklicken der Radiobuttons) Zeile für Zeile erweitert wird?
Und, noch wichtiger: Meine "wertematrix" besteht immer nur aus den aktuellen 3 Werten. Ich möchte mit Betätigung eines Pushbuttons die wertematrix mit allen berechneten Werten von den Radiobuttons, egal ob angeklickt oder nicht, füllen und abspeichern. Bisher habe ich:
Code:
data = handles.data;
newdata = getappdata(0,'Data');
wertematrix= getappdata(0,'UserData');
N = get(hObject,'String');
Index = sscanf(N, '%d');
Es wird eine Textdatei geschrieben, aber leider nur mit den 3 Werten für den angeklickten Radiobutton... Auch mit einer for-Schleife werden nur die aktuellen Werte übernommen. Was mache ich falsch?
Ich hoffe ihr könnt mir helfen! Wünsch euch einen schönen Tag!
Verfasst am: 27.01.2014, 08:59
Titel: Re: Matrix aus Schleife erstellen und als .txt exportieren
Peedschee hat Folgendes geschrieben:
Diese 3 Kenngrößen speichere ich in der "wertematrix" ab und lasse die Werte in einer Tabelle anzeigen.
Das heißt, derzeit hat deine Tabelle immer nur eine Zeile?
Peedschee hat Folgendes geschrieben:
Jetzt zu meinem Problem: Wie schaffe ich es, dass die Tabelle nicht nur die aktuellen Werte für den geklickten Radiobutton anzeigt sondern dynamisch (d. h. beim Durchklicken der Radiobuttons) Zeile für Zeile erweitert wird?
Und, noch wichtiger: Meine "wertematrix" besteht immer nur aus den aktuellen 3 Werten. Ich möchte mit Betätigung eines Pushbuttons die wertematrix mit allen berechneten Werten von den Radiobuttons, egal ob angeklickt oder nicht, füllen und abspeichern. Bisher habe ich:
Was in deiner Tabelle angezeigt wird, legst du selber fest, über die Datenmenge, die du im uitableaufruf übergibst.
Wenn du nur einen Zeilenvektor übergibst, wird natürlich auch nur eine zeile angezeigt.
Wenn du die vorherigen Werte auch möchtest, musst du diese speichern -> sinniger weise würde ich hier eine Matrix aufstellen, der bei jeder Neuberechnung der Werte einfach eine Zeile angehängt wird.
Diese Matrix übergibst du dann als Daten an uitable.
Bei jedem Radiobuttonklick musst du eben deine Tabelle neu schreiben lassen.
Peedschee hat Folgendes geschrieben:
Es wird eine Textdatei geschrieben, aber leider nur mit den 3 Werten für den angeklickten Radiobutton... Auch mit einer for-Schleife werden nur die aktuellen Werte übernommen. Was mache ich falsch?
Wie oben geschrieben: du merkst dir nur die aktuellen Werte - die vorherigen Werte musst du, z.B. in einer Matrix, auch speichern. und dann die gesamte Matrix schreiben.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Es werden jetzt beim Klick der Radiobuttons die richtigen Werte in die richtige Zeile der Matrix/des Tables geschrieben, aber leider werden die vorigen Zeilen dann alle mit 0 0 0 angezeigt. Wie kann ich die Werte speichern, sodass sich die Matrix m mit jedem Radiobutton-Klick um eine Zeile erweitert ohne die vorige auf 0 zu setzen? Sorry, aber ich steh gerade wirklich auf dem Schlauch...
Um es noch ein wenig genauer zu formulieren:
Wenn ich auf Radiobutton 1 klicke, erscheinen in meiner Matrix/meiner Tabelle
die berechneten Werte für die 1. Messwertreihe in der 1. Zeile, also z. B.
jetzt in der Opening Fcn des GUIs preallociert. Ich habe es hinbekommen, dass bei jedem Buttonklick eine neue Zeile in m geschrieben wird, ohne die vorigen Zeilen zu überschreiben oder 0 zu setzen.
Mit
klappt es jetzt wie es soll! Kann man an dem Code noch etwas optimieren?
Viele Grüße und danke nochmal!
Peedschee
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
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.