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

Überprüfung der Werte

 

Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 11.03.2013, 00:38     Titel:
  Antworten mit Zitat      
Hallo,

Wenn eine Frage keine Antworten erhält, liegt das im Allgemeinen daran, dass entweder wichtige Informationen fehlen, oder nicht klar formuliert sind.
Du sagst, dass Du Hilfe beim Fixen der Fehler brauchst, erklärst aber nicht, welche Fehler überhaupt auftreten.
Die Reihenfolge der Anwendung der Regeln spielt auch noch eine Rolle.
Zunächst schien es um RAND zu gehen (und dabei ist es sehr unwahrscheinlich, dass man 4 gleiche Werte erhält), zuletzt scheint es aber ein vorgegebener Vektor zu sein.

Ich verstehe also bisher die Aufgabestellung nicht.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.03.2013, 15:41     Titel:
  Antworten mit Zitat      
Hallo,

zunächst einmal danke für die Rückmeldung. Es sollen halt randomisierte 1000 Werte sein, ich hab im letzten Code-posting ein Beispielvektor angegeben, um die Regeln matchen zu lassen, nur leider funktioniert das noch nicht ganz so, wie ich es mir vorgestellt hatte.

Es könnte ja vorkommen, dass die Regeln mehrmals gematcht werden, bei den letzten zwei genannten Regeln, werden die Position zurückgegeben und bei der ersten regel wird ein vektor geliefert.

Es soll halt Protokolliert werden an welchen Stellen welche regeln gematcht wurden und welche werte es sind.
Beispielsweise soll ein streifen geplottet werden für die 1000 werte, in den gematchten stellen sollen die stellen farblich markiert werden.

soll ich ein bild malen, wie ich s mir vorstelle.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.03.2013, 01:57     Titel:
  Antworten mit Zitat      
Hallo,

Deine letzte Mitteilung hilft mir nicht weiter.
Was bedeutet "es sollen randomisierte 1000 Werte sein"?
Statt "es funktioniert nicht ganz so, wie ich es mir vorgestellt hatte", wäre es besser, den Unterschied zwischen dem bisherigen Ergebnis und Deinen Vorstellungen zu beschreiben.

Ich schlage vor, Du erklärst Dein Vorhaben in den drei üblichen Schritten:
1. Wie sind die Input-Daten genau charakterisiert?
2. Welche Operationen möchtest Du ausführen? In deinem Fall wären das die "Regeln", aber auch ob sie immer nur einfach oder wiederholt angewendet werden sollen.
3. Wie sieht das gewünschte Ergebnis aus.

Ich zumindest habe bisher in keinen der 3 Punkte Klarheit. Ich habe aber trotzdem die Vermutung, dass dies mit 6 bis 10 Zeilen Code lösbar ist.

Wenn Du wirklich mit RAND die Inputs erzeugst, wirst Du niemals 4 aufeinanderfolgende gleiche Zahlen finden.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2013, 01:34     Titel:
  Antworten mit Zitat      
jetzt im nachhinein gebe ich zu, dass die Formulierungen nicht verständlich waren. Ich habe eine Grafik erstellt und hoffe nun, dass die Aufgabenstellung verstanden wird.

vorstellung.png
 Beschreibung:

Download
 Dateiname:  vorstellung.png
 Dateigröße:  30 KB
 Heruntergeladen:  455 mal
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.03.2013, 12:44     Titel:
  Antworten mit Zitat      
Hallo,

Die Grafik ist sehr hübsch und klar. Nun fehlen noch die Antworten zu 1. und 3. aus meiner letzen Mitteilung:
Zitat:
1. Wie sind die Input-Daten genau charakterisiert?
3. Wie sieht das gewünschte Ergebnis aus.

Handelt es sich um Integers oder FloatingPoint Zahlen? Wenn es FloatingPoints wären, sollen Rundungsfehler bei der Berechnung berücksichtigt werden? Sind Inf oder NaN möglich?
Und in welcher Form möchtest Du das Ergebnis haben?

Ein Versuch:
Code:
A = [-38 -30 -30 -30 -30 -30 -15 0 1 2 3 4.5 4.5 4.5 4.5 4.5 3 2 10 5 40];
n = length(A);

R1 = (A < -30 | A > 30);

T2 = strfind([false, diff(A) == 0, false], [false, true(1, 5), false]);
R2 = zeros(1, n);
R2(T2) = 1;
R2(T2+5-1) = -1;
R2 = cumsum(R2);

R3 = [false, diff(A) > 5);

value = ones(1, n);
value(~R1) = NaN;
plot(1:n, value, 'r');

value(:) = 2;
value(~R2) = NaN;
plot(1:n, value, 'g');

value(:) = 3;
value(~R3) = NaN;
plot(1:n, value, 'b');

Gruß, Jan

Zuletzt bearbeitet von Jan S am 15.03.2013, 13:06, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.03.2013, 14:30     Titel:
  Antworten mit Zitat      
Hallo Jan,

ich dank dir vielmals.

1. Wie sind die Input-Daten genau charakterisiert?

- Es sind FloatingPoints Werte, wobei NaN werte auch auftauchen können. Wie meinst du es mit

3. Wie sieht das gewünschte Ergebnis aus.

Das gewünschte Ergebnis, wie im Bild zu sehen, einmal eine Grafik erstellen, als Streifen und die gemachten regeln farblich kennzeichnen (mit Legende wie im Bild).

und als Zusatz habe ich mir eigentlich eine Protokoll gedacht, wie aufm Bild zu sehen.

Nun zu deinem Code-Vorschlag:
- Ich glaube, sobald es mit streifen gezeichnet wird, kann man es besser überprüfen.

- Deine Grafik zeigt die eingetroffene Fehlerkategorien gar nicht, ich sehe nur eine gerade und drei Punkte.

Vielen Dank und viele Grüße,
Kadir
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2013, 21:30     Titel:
  Antworten mit Zitat      
Was heisst es, wenn mein Beitrag mit einem roten Ausrufezeichen versehen wird und in Klammern als komplex abgestempelt wird. Wird es von den Forum-Mitglieder noch betrachtet.
 
Jan S
Moderator

Moderator


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

Zitat:
Nun zu deinem Code-Vorschlag:
- Ich glaube, sobald es mit streifen gezeichnet wird, kann man es besser überprüfen.
- Deine Grafik zeigt die eingetroffene Fehlerkategorien gar nicht, ich sehe nur eine gerade und drei Punkte.

Da meine Grafik mit einem einfachem PLOT-Befehl erstellt wurde, sind einzelne Elemente tatsächlich nur als Punkt zu sehen. Ich habe diese vereinfachte Darstellung gewählt, um zunächst einmal abzuklären, welche Lösung Du genau suchst und ob ich die Frage prinzipiell richtig verstanden habe.
In der Tat hatte ich nicht vor, eine komplette Lösung für Dich zu schreiben, denn das ist ja Deine Arbeit und keine Aufgabe für ein Forum. Wir machen hier nur Lösungsvorschläge.

Ich kann nur raten, was "die Grafik zeigt die Kategorien gar nicht" genau bedeutet. Es ist hilfreicher, wenn Du beschreibst, was der Code macht und welchen Unterschied Du möchtest. Eine Beschreibung was ein Code nicht macht, ist prinzipiell wenig informativ.

Zitat:
Wird es von den Forum-Mitglieder noch betrachtet.

Hast Du den Eindruck, Deine Fragen würden in diesem Forum zu wenig beachtet?

Wenn ein Thema viele Rückfragen und Klärungsversuche enthält, es also einige Arbeit benötigt, um den Inhalt komplett zu verstehen, wird es als "komplex" gekennzeichnet. Wenn ich nur 10 Minuten Zeit habe, beginne ich z.B. nicht ein "komplexes" Thema zu lesen, sondern kümmere mich um eines, das ich wahrscheinlich schneller begreifen und beantworten kann. Das Wählen des Status ist also eine "Klassifizierung", kein "Abstempeln".
Ein "komplexes" Thema wird tatsächlich seltener gelesen und beantwortet. Das liegt aber nicht an der Klassifizierung selbst, sondern natürlich daran, dass das Thema komplex ist.

Mit möglich knappen und klaren Fragen sind die Chancen auf eine nützliche Antwort immer höher. Je mehr Nachfragen nötig sind, um eine Frage überhaupt zu verstehen, desto ineefizienter wird das Erstellen einer Antwort. Deshalb schlage ich vor, du teilst Dein Problem in überschaubare einzelne Teile und stellst diesbezüglich knappe und präzise Fragen, die sich am besten in weniger als 4 Sätzen oder 10 Zeilen Code beantworten lassen.

Alles klar? Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.03.2013, 19:54     Titel:
  Antworten mit Zitat      
Okok, wir versuchen es dann mal schritt für schritt:

Code:

A = [-38 -30 -30 -30 -30 -30 -15 0 1 2 3 4.5 4.5 4.5 4.5 4.5 3 2 10 5 40];
n = length(A);

R1 = (A < -30 | A > 30);

T2 = strfind([false, diff(A) == 0, false], [false, true(1, 5), false]);
R2 = zeros(1, n);
R2(T2) = 1;
R2(T2+5-1) = -1;
R2 = cumsum(R2);

R3 = [false, diff(A) > 5];

% Kategorisieren
data(R1 < 1) = 0;
data(R2 < 1) = 1;
data(R3 < 1) = 2;

data(data <= 0) = NaN; % das sollen fehlende Werte sein

imagesc(data)



Mit dieseM Code bekomme ich die Grafik im Anhang, nach bissl recherche, hab ich es geschafft als streifen darzustellen.

Ich würde gerne die Fehlerkategorien nun in unterschiedlichen Farben darstellen, wie mach ich das ?
Könnte ich auch eine Legende hinzufügen?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Laut meinem Workspace, bekomme ich folgende Daten:

Code:
RG1: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 <1x21 logical>
RG2: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 <1x21 double>
RG3: 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 <1x21 logical>


Was läuft bei der RG2 falsch.?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

images.png
 Beschreibung:

Download
 Dateiname:  images.png
 Dateigröße:  10.17 KB
 Heruntergeladen:  455 mal
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.03.2013, 03:02     Titel:
  Antworten mit Zitat      
Hallo,

Bei Regel 2 läuft wohl falsch, dass Du nach 5 gleichen Werten suchst. Dann müssen 4 Differenzen gleich 0 sein, nicht 5:

Code:
T2 = strfind([false, diff(A) == 0, false], [false, true(1, 4), false]);

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2013, 13:52     Titel:
  Antworten mit Zitat      
Also, es klappt gut mit der zweiten Regel. Sobald ich die Variablen R3, R2, Ra einzeln ausgebe, funktioniert es ja einwandfrei.

RG3 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 <1x21 logical>
RG2 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 <1x21 double>
RG1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 <1x21 logical>

Anbei sind auch die separat geplotteten Variablen mit bar.

Jetzt ist die Frage, wie ich es am besten visuell plotten könnte?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dazu kann ich die zweite Frage auch stellen:

Wie kann ich es, wie in der ursprungsgrafik, Die gematchten regeln automatisiert plotten lassen?

Position X mit Regel Y mit dem Wert Z (eventuell bis W falls die regel2 eintrifft)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ok.png
 Beschreibung:

Download
 Dateiname:  ok.png
 Dateigröße:  24.98 KB
 Heruntergeladen:  501 mal
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2

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.