Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » NaN Werte!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.02.2017, 23:08 Uhr
berolld



Hallo,

ich habe follgendes Problem:

Ich habe Höhenwerte, z.B:

Fall 1,

1 NaN
2 324
3 456
4 NaN


Fall 2,

1 324
2 NaN
3 345

Wie kann ich es machen, dass ich für Fall eins für den 1. Fall wo NaN steht, dies mit dem Wert der 2. Stelle ausfülle und z.B. für Fall 2 die Stelle 2 mit dem Wert der 1. Stelle ausfülle.

Mein Code sieht wie folgt aus, bzw. ich habe versucht dem zu entgehen.


Code:
    double h;
        for (int l=0; l < hoehe.size()-1; l++) {
                
                         //zum umgehen der NaN Werte
             if(hoehe[0] != hoehe [0]){
              hoehe[0] = hoehe[l+1];
             }
             else if ( hohe[l] != hoehe [l]) {
                      hoehe[l] = hoehe[l-1];
                  }

             h = hoehe[l+1] - hoehe[l];
                         // füe die Aufsumierung.
             if(h < 0)
             {
                 h =abs(h);
             }
             else if (h>=0) {
                         Aufstieg = Aufstieg +h;
                  }
        }



Gruß

berolld
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.02.2017, 10:11 Uhr
ao

(Operator)


Ich verstehe nicht ganz, wo das Problem liegt.

Ist es die Erkennung von NAN? Hierfür gibt es in der math.h die Funktion isnan, die sollte man verwenden und nicht auf vermeintlich äquivalente Tests (Vergleich mit sich selber) ausweichen.

Oder sind es die Regeln, nach denen die Wertetabellen "geflickt" werden sollen? Wenn ja: Die habe ich noch nicht ganz verstanden. Zeig doch mal deine Beispiel-Tabellen NACH der Korrektur.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.02.2017, 11:53 Uhr
berolld



Ja, die müssen gflickt werden.

Ich soll über eine gewissen Strecke, die Höhe errechnen, und diese in Aufstieg und Abstieg gliedern.

Folgerndermaßen solle das dann aussehen:

1 NaN
2 324
3 456
4 NaN
5 432
6 412
7 NaN
8 456

Nach der Korrektur, muss ich mit folgenden Werten rechnen, bzw. sollte die Tabelle wie folgt sein:

1 324 Hier muss das NaN = 324 sein da ich keinen anderen Bezugswert habe.
2 324
3 456
4 432 oder 456 spielt keine Rolle, da einmal Abstieg und einmal 0m höhenunterschied
5 432
6 412
7 412 oder 456 spielt ebenfalss keine Rolle.

hoffe kannst nachvollziehen wo mein Problem ist.

gruß
berolld
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.02.2017, 12:29 Uhr
ao

(Operator)


Die Aufgabe lautet: Fehlende Messwerte aus den Nachbarwerten interpolieren. Zu diesem und ähnlichen Suchbegriffen müsstest du eine Fülle an Material finden.

Im einfachsten Fall würde man vermutlich im Innenbereich linear interpolieren (also x[4] = (x[3] + x[5]) / 2, und am Rand einfach den inneren Nachbarwert übernehmen.

Anspruchsvoller wird das, wenn die NAN-Werte nicht nur einzeln stehen, sondern auch mehrere davon direkt benachbart stehen können. Aber im Prinzip bleibt es dasselbe: Von einem gültigen Wert bis zum nächsten die Lücken dazwischen stetig füllen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: