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

Speicherproblem bei großer Matrix

 

die_maus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2007, 14:01     Titel: Speicherproblem bei großer Matrix
  Antworten mit Zitat      
Hallo Matlaber,

ich schreibe in eine Matrix (5 Spalten) alle möglichen Kombinationen von 5 Parametern, die jeweils 9 Werte (0.1, 0.2,... 0.9) annehmen können; die Matrix bekommt also 9^5 = 59049 Zeilen. Wenn ich dann allerdings nach bestimmten Werten suche, z.B.

Code:
...( inputmat(:,1)==kappa & inputmat(:,3)==delta...
              & inputmat(:,2)==lambda & inputmat(:,5)==h , 1 );


findet er einen bestimmten Wert (nämlich falls ich festlege dass lambda oder delta oder kappa oder h = 0.7) nirgends mehr (Antwort: "empty matrix"), obwohl diese werte natürlich in der matrix stehen (und per hand-nachkucken auch zu finden sind!).

anscheinend handelt es sich um ein speicherproblem, denn vorerst habe ich das problem dadurch geflickt dass ich die matrix-einträge als single speichere (und damit nur noch halb soviel speicher brauche); aber das ist natürlich keine dauerhafte lösung.

kann mir jmd. erklären, was genau das problem dahinter ist, und wie ich es langfristig (für beliebig große matrizen?) lösen kann??


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 29.11.2007, 15:12     Titel:
  Antworten mit Zitat      
Hallo,
ich bin nicht sicher, ob der Speicher das Problem ist. Auch wenn es kein schöner MATLAB-Stil ist, probiere mal

Code:

x = 0;
for i=2:10
x(i) = x(i-1)+0.1;
end
find(x==0.8)
 


Allerdings folgender Code sollte ein Ergebnis liefern:
Code:

find(abs(x-0.8)<1e-10)
 


Der Grund ist, dass 0.1 im Dualsystem eine periodische Zahl ist. Daher immer, wenn es sich nicht gerade um ganze Zahlen handelt, Fließkommazahlen nicht mit == vergleichen!

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
die_maus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2007, 10:02     Titel: rückfrage
  Antworten mit Zitat      
hey titus,
vielen dank, damit versteh ich einige seltsame dinge schon besser!
wie aber soll ich dann fließkommazahlen vergleichen?
den befehl ISEQUAL habe ich gerade probiert, der liefert aber das gleiche problem wie ==
hat jemand ne ahnung?? danke!!!
 
die_maus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2007, 10:49     Titel: hat etwas länger gebraucht ;-)
  Antworten mit Zitat      
hey titus nochmal,
mensch ich hätte deinen zweiten code-abschnitt nochmal ordentlicher anschaun sollen - das ist ja die lösung! ich muss also einfach suchen wo die differenz kleiner als die zahl-genauigkeit ist - aaaha! sorry, ich stand wohl etwas auf der leitung..!
danke, das sollte mein problem lösen!!!
viele grüße,
die_maus
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 30.11.2007, 11:12     Titel:
  Antworten mit Zitat      
Bzgl. der Zahlgenauigkeit - dies ist kein MATLAB problem, sondern ein fundamentales Problem.
http://www.mathworks.com/support/solutions/data/1-16FOQ.html

Schau auch in der Hilfe nach der Funktion EPS.


MfG
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 - 2024 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.