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

Toleranzwerte bilden

 

arthek
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 25.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2011, 12:26     Titel: Toleranzwerte bilden
  Antworten mit Zitat      
Hi leute ich steh irgendwie total auf dem schlauch.Versuch schon den ganzen tag da eine lösung zu finden.

Ich habe folgende Problem. Ich habe eine Matrix die 20x2 groß ist . Die einzelnen werte sind sind bis auf 4 stellen nach dem komma .
Jetzt hab ich was geschrieben , das er mir die werte die gleich sind nur einmal aufzählt und dann aber eine häufigeit hochzählt.
Das habe ich jetzt.. Jetzt möchte ich aber auch das werte die nicht genau gleich sind sonder z.b. +- 0.001 Toleranz haben auch als gleiche angenommen werden.. Wie kann ich das machen??

hier mein aktueller code.

Code:

gps_pos =[
1.0001,2.0002,3 ;
2.0001,3.0002,4 ;
5.0002,6.0001,7 ;
1.0002,2.0001,3 ;
2.0004,3.0003,4 ;
5.0003,6.0002,7 ;
7.0002,6.0003,5 ;
5.0004,4.0005,6 ;
4.0002,5.0002,6 ;
2.0002,3.0002,5 ;
2.0001,6.0002,9 ;
8.0006,3.0007,9 ;
1.0001,2.0002,3 ;
2.0001,3.0002,4 ;
5.0002,6.0001,7 ;
1.0002,2.0001,3 ;
2.0004,3.0003,4 ;
5.0003,6.0002,7 ;
7.0002,6.0003,5 ;
5.0004,4.0005,6 ;
4.0002,5.0002,6 ;
2.0002,3.0002,5 ;
2.0001,6.0002,9 ;
8.0006,3.0007,9 ;
 ] ;

gps_pos_xy = gps_pos(:,1:2);


 for i = 1:length(gps_pos_xy(:,1))
 if i == 1
    count(i,:) = [gps_pos_xy(1,:),1];
     else
     for j = 1:length(count(:,1))
           if gps_pos_xy(i,1) == count(j,1) && gps_pos_xy(i,2) == count(j,2)
            count(j,3) =  count(j,3) + 1;
                break
            elseif j == length(count(:,1))
                count(j+1,:) = [gps_pos_xy(i,:),1];
           end
        end
     end
 end
 


danke gruß
Private Nachricht senden Benutzer-Profile anzeigen


Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2011, 12:55     Titel:
  Antworten mit Zitat      
Ob Werte "fast" gleich sind lässt sich so prüfen:

Code:

x=1.0001;
y=1.0002;
if abs(x-y)<0.001
 disp('hurra');
end

 
 
arthek
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 25.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2011, 13:01     Titel:
  Antworten mit Zitat      
das problem dabei ist, dass ich den toleranz nicht einstellen kann

Code:

x=1.0005;
y=1.0001;
if abs(x-y)<0.001
disp('hurra');

end

 


das kommt auch ein hurra, obwohol ich ja nur eine toleranzn von z.b.
+- 0.0001 haben will..
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 13.09.2011, 13:10     Titel:
  Antworten mit Zitat      
Hallo arthek,

im ersten Bsp hast du eine Toleranz von 0.001 gefordert-->Gast1 schreibt dir eine Möglichkeit dafür. Mit ein bisschen Überlegung wärst du wahrscheinlich drauf gekommen, dass die 0.001 im Code die Toleranz sein sollen Wink

Code:
x=1.0005;
y=1.0001;
toleranz = 0.0001;
if abs(x-y)<toleranz
disp('hurra');

end


Sorry wenn das jetzt vielleicht etwas ruppig klingt...
Oft hilft es auch einfach nen bisschen Abstand zum Code zu nehmen (Kaffe trinken, Päusschen machen) dann sieht man solche Sachen auch Wink

Gruß Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2011, 13:10     Titel:
  Antworten mit Zitat      
Natürlich kommt da "hurra"

Der Abstand ziwschen x und y beträgt ja auch 0.0004, was numal kleiner ist als 0.001. Die Toleranz musst du entsprechend deinen Bedürfnissen wählen.
 
arthek
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 25.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2011, 13:13     Titel:
  Antworten mit Zitat      
ach mist , da steht 0.001 Very Happy dachte die ganze zeit das wäre 0.0001 und hatte mich doch gewundert , weil 0.0004 ja nicht kleiner ist als 0.0001 Smile.. danke
Private Nachricht senden Benutzer-Profile anzeigen
 
arthek
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 25.01.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2011, 16:26     Titel:
  Antworten mit Zitat      
BlackDread hat Folgendes geschrieben:
Hallo arthek,

im ersten Bsp hast du eine Toleranz von 0.001 gefordert-->Gast1 schreibt dir eine Möglichkeit dafür. Mit ein bisschen Überlegung wärst du wahrscheinlich drauf gekommen, dass die 0.001 im Code die Toleranz sein sollen Wink

Code:
x=1.0005;
y=1.0001;
toleranz = 0.0001;
if abs(x-y)<toleranz
disp('hurra');

end


Sorry wenn das jetzt vielleicht etwas ruppig klingt...

Oft hilft es auch einfach nen bisschen Abstand zum Code zu nehmen (Kaffe trinken, Päusschen machen) dann sieht man solche Sachen auch Wink

Gruß Chris


ja hast ja recht..denn code an sich hab ich verstanden und war mir ja auch sicher ,dass die 0.001 die toleranz ist ist ja logisch aber ich hatte die ganze zeit 0.0001 im kopf und dachte auch das ich es oben geschrieben habe Smile

trotzdem danke

gruß arthek
Private Nachricht senden Benutzer-Profile anzeigen
 
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.