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 Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

Identischer Werte

 

freddy123
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.04.2013, 17:54     Titel: Identischer Werte
  Antworten mit Zitat      
Frohe Ostern,

ich habe nun ein Problem, welches ich im Internet recherchiert habe und auch eine Lösung gefunden habe. Mir fehlt nur noch der Ansatz im Matlab.
Dabei habe ich Werte mit Nan.

Sobald ich diese Folgen identifiziere, möchte ich den Start und Endposition haben.

Zitat:
Die Identifikation von Folgen (fast) identischer Werte wurde durch Überprüfung der gleitenden
Standardabweichung über jeweils n nachfolgende Werte realisiert: Wenn überhaupt keine
Änderung des Wertes in einer Folge von n Werten auftritt, so beträgt die Standardabweichung
s exakt 0. Falls auch Folgen von n fast identischen Werten detektiert werden sollen, so sind je
nach Grösse von n und je nach erlaubter Grösse der Wertefluktuation auch etwas grössere
Werte von s erlaubt.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

jetzt wird mir klar, was das mit der Standardabweichung in dem anderen Thread die ganze Zeit sollte. Das entscheidende ist, dass es um eine gleitende Standardabweichung geht.

Ich halte das zitierte Verfahren zwar für relativ umständlich, aber es macht immerhin Sinn.

Eine Implementierung der gleitenden Standardabweichung findest du hier:
http://www.mathworks.com/matlabcent.....window-standard-deviation

Den Rest solltest du mit der Vorarbeit aus dem anderen Thread selbst hinbekommen.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2013, 11:47     Titel:
  Antworten mit Zitat      
Also, ich habe mir das mal angeschaut und es auf eine Reihe angewendet.

Als Entwickler gebe ich meine Reihe und dann meine Fenstergröße und dann noch Referenzenrichtung.

Könntet ihr mir vielleicht ein Ansatz machen. Der Ansatz fällt mir noch schwer.
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: 10.04.2013, 14:53     Titel:
  Antworten mit Zitat      
Hallo freddy123,

Zitat:
Also, ich habe mir das mal angeschaut und es auf eine Reihe angewendet.

Also läuft es bereits?

Zitat:
Als Entwickler gebe ich meine Reihe und dann meine Fenstergröße und dann noch Referenzenrichtung.

Was bedeutet "Als Entwickler" und was ist "geben" hier? Was ist eine "Referenzrichtung"?

Ich verstehe die eigentliche Frage immer noch nicht. Es ist nicht effizient, wenn wir mühsam versuchen, Dir die Würmer aus der Nase zu ziehen und lange herumraten, um die wichtigen Details Deiner Frage herauszufinden.

Ich verstehe, dass es für Dich schwer ist, einen Ansatz für die Lösung des Problems in Matlab zu finden. Aber ich selbst kann kaum einen Ansatz finden, wenn ich das Problem nich klar und deutlich erklärt bekomme. Ich kann dann zwar irgendetwas programmieren, aber das ist dann doch eher sinnfrei.

Ich empfehle Dir, das Problem zuerst in möglich kleine Teilaufgaben zu zerlegen, und diese dann Schritt für Schritt zu bearbeiten. Dann kannst Du konkrete Fragen stellen, den vorhandenen Code posten und Verbesserungen/Erweiterungen leicht einbauen.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2013, 16:54     Titel:
  Antworten mit Zitat      
Zitat:
Die Identifikation von Folgen (fast) identischer Werte wurde durch Überprüfung der gleitenden Standardabweichung über jeweils n nachfolgende Werte realisiert: Wenn überhaupt keine Änderung des Wertes in einer Folge von n Werten auftritt, so beträgt die Standardabweichung s exakt 0. Falls auch Folgen von n fast identischen Werten detektiert werden sollen, so sind je
nach Grösse von n und je nach erlaubter Grösse der Wertefluktuation auch etwas grössere Werte von s erlaubt.


D.h. Mit einer zunehmenden Anzahl von Stellen sinkt die Wahrscheinlichkeit, dass Werte rein zufällig exakt identisch sind.

Mal Angenommen, ich habe jetzt eine Beispielarray von

A = [50.0 51.0 50.0 52.0 52.0 53.0 52.0 54.0 55.0 55.0 56.0 56.0 56.0 56.0 56.0 56.0 46.0 36.0 26.0 16.0 17.0 36.0 56.0 0.0 -10.0 -20.0 -20.1 -20.1 -20.1 -20.1 -20.0 -20.1 -50.0 0.0 1.0]
s = movingstd(A,5,'f')

Wie kann ich den window-standard-deviation einsetzen, um Folgen identischer Werte zu finden.
Private Nachricht senden Benutzer-Profile anzeigen
 
freddy123
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.04.2013, 20:02     Titel:
  Antworten mit Zitat      
harald wo bist du? Helf mir mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

wie gesagt, in deinen anderen Threads wurde diese Frage beantwortet.
Du solltest schon versuchen, das auch zu verstehen. Selbst nachdenken schadet übrigens auch nicht.

Code:
s = movingstd(A,5,'b');
s(1:4) = NaN; % ungültig, weil keine 5 zurückliegenden Werte
idx = find(s < 1)


idx sind dann die Indizes, bei denen die Standardabweichung über den Wert und die 4 zurückliegenden Werte (also insgesamt 5 Werte) kleiner als 1 ist.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.04.2013, 22:12     Titel:
  Antworten mit Zitat      
danke, ich weis es zu schätzen. ich würde es ja gerne selbst lösen wollen..
ich mach mir ja gedanken und beobachte die variablen in dem workspace. nur leider muss ich sagen, dass ich jetzt völlig durcheinander bi. Es mag sein, dass das einfach ist... nur leider brauche ich Tipps und Hinweisen eine Hilfestellung, um es zu lösen...

Hilf mir mal bitte auf die Sprünge


Code:
A = [ 50.0 51.0 50.0 52.0 52.0 53.0 52.0 54.0 55.0 55.0 56.0 56.0 56.0 56.0 56.0 56.0 46.0 36.0 26.0 16.0 17.0 36.0 56.0 0.0 -10.0 -20.0 -20.1 -20.1 -20.1 -20.1 -20.0 -20.1 -50.0 0.0 1.0]';

d = [true; diff(A) ~= 0];   % TRUE if values change
b = A(d);                   % Elements without repetitions
k = find([d', true]);       % Changes of values
runlength = diff(k);                % Number of repetitions
index = k(1:length(k) - 1);  % Index of sequences
match = (runlength >= 4); %match all sequences with the minimum length of 4
c = index(match);           %indexing of the reptitions


%s = movingstd(A,5,'b')
%s(1:4) = NaN; % ungültig, weil keine 5 zurückliegenden Werte
%idx = find(s < 1)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

und womit nun?
Oder anders gefragt: warum kommentierst du nun meinen Code-Vorschlag aus und verwendest etwas vollkommen anderes?

Wobei benötigst du Hilfe?

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.04.2013, 10:55     Titel:
  Antworten mit Zitat      
Ich merke gerade, dass wir aneinander vorbei reden.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das fürchte ich auch. Ich meine, mit meinem Beitrag von gestern, 21:40, die ursprüngliche Frage beantwortet zu haben. Mir ist nicht klar, was der darauffolgende Beitrag nun damit zu tun hat.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 27.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2013, 15:32     Titel:
  Antworten mit Zitat      
Code:
s = movingstd(A,5,'b')
s(1:4) = NaN; % ungültig, weil keine 5 zurückliegenden Werte
idx = find(s < 1)


was genau gebe ich mit der folgenden zeile an, die mindestlänge
Code:
s(1:4) = NaN; % ungültig, weil keine 5 zurückliegenden Werte
 



in diesem fall ist es < 1, wie ermittel ich die konstante
Code:
idx = find(s < 1)
Private Nachricht senden Benutzer-Profile anzeigen
Gesperrt: 15.04.2013, 17:09 Uhr von Jan S
 
Neues Thema eröffnen Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.



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.