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

Nulldurchgänge bestimmen aus 2D Diagramm

 

Marcus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.01.2011, 16:59     Titel: Nulldurchgänge bestimmen aus 2D Diagramm
  Antworten mit Zitat      
Code:

% Einlesen erste Datenreihe
% =========================

% Aufforderung zur Dateneingabe in Pop-Up-Fenster
[filename, pathname, filterindex]=uigetfile('*.txt', 'Run laden (*.txt)', 'Multiselect', 'on');
% Zuordnung der Daten in Spalten, Angabe der Datenstruktur
[time, Fx1, Fy1, Fz1, Mx1, My1, Mz1, COPx1, COPy1, Fx2, Fy2, Fz2, Mx2, My2, Mz2, COPx2, COPy2] = textread(filename, '%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f', 'delimiter', ',');

% Ausgabe des Zeit-Momenten-Verlaufs in Boardlängsachse, Bindung 1
% (positiv-> Frontside, negativ-> backside)

% Streckung der x-Achse zur besseren Veranschaulichung
Nx = 2; % in x-Richtung verdoppeln
Ny = 1; % in y-Richtung unverändert
pos = get(gcf,'Position');
set(gcf,'Position',[pos(1:2) Nx*pos(1) Ny*pos(2)]);

plot(time,Mx1)
grid on                 %Gitternetz drüberlegen
title('Moment Mx1')     %Plot-Beschriftung
xlabel('Zeit [s]')
ylabel('Moment [Nm]');

a=0;        % Variable zum Zählen der Schleifendurchläufe

while a<11
    [t,M] = ginput(2)       % Anweisung zum Klick in Plot -> Zeitpunkt des Nulldurchgangs wird bestimmt

        [Filename, PathName] = uiputfile('*.txt', 'Turn benennen')  % Dialogbox zum Abspeichern der Werte
        csvwrite(Filename, [time, Fx1, Fy1, Fz1, Mx1, My1, Mz1, COPx1, COPy1, Fx2, Fy2, Fz2, Mx2, My2, Mz2, COPx2, COPy2])
   
    a=a+1       % Inkrementieren der Zählvariable für Schleifendurchläufe
end
 


Hallo dies ist hier mein Programm indem ich zuerst eine txt.Datei einlesen lassen, dann mir ein 2D Diagramm ausgeben lasse und indem Diagramm bestimme ich dann halt per klick die nulldurchgänge. Da ich so die einzelnen Daten zwischen den Nulldurchgängen mir wieder als txt.Datei ausgeben lassen will. So weit klappt das auch, also mit dem klicken usw., dass einzige Problem ist nur, das nachjedem klick wieder wie gewollt sich ein fenster öffnet um die txt.datei zu speichern, aber es wird einfach nur die txt.Datei gespeichert die eingelesen wird und nicht der abstand von Null zu Null. Was mach ich falsch und was kann ich tun dagegen.
Bitte um Hilfe

Mfg Marcus


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.01.2011, 17:06     Titel:
  Antworten mit Zitat      
Hallo,

du speicherst ja die Daten wieder so ab, wie du sie eingelesen hast. Woher soll MATLAB also wissen, was abzuspeichern ist?

Nulldurchgänge kann man (zumindest angenähert) übrigens auch automatisiert finden:
Code:
idx = diff(sign(Mx1) ~= 0;
[time(idx), Mx1(idx)]


Für bessere Informationen müsste man interpolieren.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Marcus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.01.2011, 15:43     Titel:
  Antworten mit Zitat      
Hat jemand vllt nochmehr anregungen?
Bin bisher noch nicht weiter, bitte dringend um Hilfe!!!
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 05.01.2011, 17:52     Titel:
  Antworten mit Zitat      
Hallo Marcus,

Haben die bisherigen Anregungen denn irgendwelche Eindrücke hinterlassen? Welche?

Code:
[t,M] = ginput(2);
[Filename, PathName] = uiputfile('*.txt', 'Turn benennen');
csvwrite(Filename, [time, Fx1, Fy1, Fz1, Mx1, My1, Mz1, COPx1, COPy1, Fx2, Fy2, Fz2, Mx2, My2, Mz2, COPx2, COPy2])

Du musst t und M zuerstmal in zwei Vektoren sammlen (z.B. "[t(i), M(i)] = ginput(2)") und es nach der Messung natürlich auch mit abspeichern, also in die Liste der Ausgaben in den CSVWRITE-Befehl einbauen!

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Marcus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2011, 21:10     Titel:
  Antworten mit Zitat      
oh man ich bin anscheinend echt zu blöd dafür, ich hasse diese scheiß Projektarbeit Wink
bin halt nen Programmier-Noob!!!

wenn also noch irgendjemand irgendwelche Anregungen hat und mir noch nen paar Tipps geben könnte wäre ich ihm sehr dankbar.

wie gesagt habe halt Daten von nem Snowboardparkur von mehreren Probanden und brauche halt die einzelnen Schwünge und die will ich mir dann ausgeben lassen (halt ein Schwung von Nulldurchgang zu Nulldurchgang). Von denen will ich dann halt den Mittelwert der Kraft bilden und dann den optimalen Schwung mir berechnen lassen.
Wäre also über jede Antwort und über jedes Feedback hoch erfreut.

Mfg Marcus
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.01.2011, 21:20     Titel:
  Antworten mit Zitat      
Hallo Marcus,

geh doch vielleicht mal auf die Antworten von Jan oder mir ein. Wenn dir das nicht weiterhilft, warum nicht? Wie kann man dir sonst weiterhelfen?

Es ist ja schön zu wissen, was die dahinterstehende Anwendung ist, aber ich fürchte, dass das nicht zu hilfreicheren Antworten für dich beitragen wird.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Marcus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2011, 21:30     Titel:
  Antworten mit Zitat      
@Harald: Ja ich hab dies schon versucht, aber ohne Erfolg, weil ich hab es ausversucht, aber ich weiß nicht so recht wie ich es anwenden soll und wo einfügen muss.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.01.2011, 22:05     Titel:
  Antworten mit Zitat      
Hallo,

dann zeig doch mal, was der neueste Stand ist? Was du versucht hast? Ob es dich weitergebracht hat oder wo du noch hängst?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Christoph_6884

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2011, 23:54     Titel:
  Antworten mit Zitat      
Hallo,

ich arbeite mit Marcus zusammen an dem Projekt und möchte mal näher auf die Probleme eingehen, die wir haben:

1. Danke für den Post mit der automatischen Nullstellenberechnung. Ist allerdings für uns nicht 100%ig hilfreich, da ab und zu auch "falsche Nulldurchgänge" da sind, d.h. Nulldurchgänge, die nicht als solche identifiziert werden sollen, da sie noch zum alten Schwung gehören. Daher ist für uns die Klick-in-Plot-Methode schon ganz hilfreich, um selbst bestimmen zu können, wo der Nulldurchgang registriert werden soll.

2. Das eigentliche Problem (das ich schonmal hier gepostet habe, auf das leider allerdings noch niemand eingegangen ist) ist, dass wir eben genau diesen Befehl nicht haben, der dem Programm sagt: "Merke dir die x-Koordinate (Zeitpunkt des Nulldurchgangs) aus dem Klick, warte auf den nächsten Klick, merke dir auch diese x-Koordinate und schneide mir aus den Rohdaten (*.txt-Datei mit 17 Spalten und ca. 35000 Zeilen je Messfahrt) alle dazwischenliegenden Werte aus und speichere diese als neue *.txt-Datei ab.

Ich hoffe das Problem wurde jetzt verständlicher.

LG und Danke für die Hilfe im Voraus...
 
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.