Verfasst am: 14.10.2015, 12:56
Titel: Vektoren in Tabellenfenster ausgeben
Hallo zusammen,
da ich jetzt schon seit etwa 3h am suchen bin und nicht fündig werde, habe ich die Hoffnung mir kann hier jmd weiter helfen.
Mir stellt sich folgendes Problem:
Ich habe Messdaten in Variablen im Workspace.
Aus diesen Messdaten lese ich die Peaks aus. Je nach Peakgröße bekomme ich zum Beispiel bei dem Peak > 2,5µm ein Vektor, und bei den Peaks >4µm ein zweiten Vektor.
Nun möchte ich die Vektoren in einem Fenster bzw. in einer Tabelle anzeigen lassen wenn das Programm fertig gerechnet hat. Wie man in etwa so ein Tabellenfenster erstellt hab ich schon gefunden, jedoch komm ich nicht drauf wie ich in das Tabellen fenster in Spalte 1 den ersten Vektor, in Spalte 2 den zweiten vektor usw. bekomme...
mein Programm sieht bis jetzt so aus:
Code:
%% Alle Peaks (Maxima)
[pkx,lcx] = findpeaks(x); % Es werden alle Peaks (Höheren Ausschläge) % der X-Achse ermittelt pkx Werte in mm
lcx_time = Time(lcx,1); % Die zu den Peaks in X zugehörige Zeit [pky,lcy] = findpeaks(y); % Es werden alle Peaks (Höheren Ausschläge) % der Y-Achse ermittelt pkx Werte in mm
lcy_time = Time(lcy,1); % Die zu den Peaks in Y zugehörige Zeit
pkx_max1 = pkx(x(lcx)>C.Abweichungsgrenze1); % Alle Fehlerüberschreitungen über Stufe 1 in X
pky_max1 = pky(y(lcy)>C.Abweichungsgrenze1); % Alle Fehlerüberschreitungen über Stufe 1 in Y
pkx_max2 = pkx(x(lcx)>C.Abweichungsgrenze2); % Alle Fehlerüberschreitungen über Stufe 2 in X
pky_max2 = pky(y(lcy)>C.Abweichungsgrenze2); % Alle Fehlerüberschreitungen über Stufe 2 in Y
pkx_max3 = pkx(x(lcx)>C.Abweichungsgrenze3); % Alle Fehlerüberschreitungen über Stufe 3 in X
pky_max3 = pky(y(lcy)>C.Abweichungsgrenze3); % Alle Fehlerüberschreitungen über Stufe 3 in Y
pkx_max4 = pkx(x(lcx)>C.Abweichungsgrenze4); % Alle Fehlerüberschreitungen über Stufe 4 in X
pky_max4 = pky(y(lcy)>C.Abweichungsgrenze4); % Alle Fehlerüberschreitungen über Stufe 4 in Y
pkx_max5 = pkx(x(lcx)>C.Abweichungsgrenze5); % Alle Fehlerüberschreitungen über Stufe 5 in X
pky_max5 = pky(y(lcy)>C.Abweichungsgrenze5); % Alle Fehlerüberschreitungen über Stufe 5 in Y
%% Erstellung einer Tabelle
f = figure('Position', [350300800500],'NumberTitle','off','Name','Fehlertabelle');
tab1 = uitable('Parent', f, 'Position', [15170768320]);
Verfasst am: 14.10.2015, 13:03
Titel: Re: Vektoren in Tabellenfenster ausgeben
Hallo Spoony0987,
Wie soll denn der Output genau aussehen? In welcher Form sollen die Vektoren erscheinen?
Für das eigentliche Problem würde es übrigens reichen, einfach 2 Vektoren zu definieren:
Hallo Jan,
vielen Dank erstmal für die schnelle Rückmeldung.
Du hast recht, hier kurz mit einfachen Vektoren allerdings Spaltenschreibweise
Ich hätte gerne den Vektor a in der Tabelle in der ersten Spalte und direkt nebendran den Vektor b in der nächsten Spalte.
Bin mir aber nicht ganz sicher wie ich das in complexData1 schreiben muss damit die Zahlen des Vektors untereinander geschrieben werden, so wie es jetzt programmiert ist, steht der komplette Vektor in einem Feld wenn ich das richtig deute...
Der einzige Nachteil hier ist, dass
sprintfc
keine dokumentierte Funktion ist. Sehr sehr schade. Wenn Du sicher gehen willst, dass der Code auch noch in Zukunft läuft:
das kommt genau da hin was ich brauch!
Aber meinst du könntest noch erklären was genau passiert, weil so richtig nachvollziehen kann ich das nicht. Und der zweite Code versteh ich auch nicht und wofür ich den brauch bzw. kommt der dazu oder ist das eine zweite Lösung?
Du kannst den Code Zeile für Zeile ablaufen lassen, wenn Du den Debugger verwendest. Das hilft oft dabei den Code zu verstehen.
Die Funktion
sprintfc
erzeugt keinen String, sondern einen Cell-String.
Leider ist diese Funktion aber "nicht dokumentiert". Das heißt, das Mathworks sie vielleicht beim nächsten Matlab-Release nicht mehr ausliefert. Dann würde der Code mit einem Fehler abbrechen.
Um das zu vermeiden habe ich die Funktion mySprintfc geschrieben, die das gleiche macht wie
sprintfc
, nur langsamer. Man kann dann "sprintfc" durch "mySprintfc" ersetzen.
Gruß, Jan
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.