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

Speicherplatz NaN in Matrix

 

thomas0815
Forum-Century

Forum-Century


Beiträge: 153
Anmeldedatum: 13.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2010, 14:49     Titel: Speicherplatz NaN in Matrix
  Antworten mit Zitat      
Hallo zusammen,

ich habe eine große Matrix mit vielen NaN-Elementen; ich möchte nachfragen, ob diese NaN Element Speicherplatz und und Rechenzeit(bei for-Schleifen) beanspruchen und, falls ja, was ich dagegen tun kan. Ich brauche die Dimension der Matrix, habe jedoch nur einzelne Elemente mit Zahlen belegt.

Danke und Gruß,
Thomas
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: 27.08.2010, 15:21     Titel:
  Antworten mit Zitat      
Hallo,

Ich würde davon ausgehen, dass NaN genausoviel Speicherplatz und Rechenzeiten benötigen wie "normale" Einträge.

Es gäbe die Möglichkeit, mit dünnbesetzten Matrizen zu arbeiten. Dort sind alle bis auf wenige Einträge 0, und es wird nur mit den von 0 verschiedenen Einträgen gerechnet.
Code:


Um mehr zu helfen, bräuchte man mehr Informationen zum Programm.

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

Forum-Century

Forum-Century


Beiträge: 153
Anmeldedatum: 13.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2010, 16:24     Titel:
  Antworten mit Zitat      
Hallo Harald,

nein mit Sparse Matrizen kann ich nicht arbeiten, da genau in den Felder wo Werte drinnen stehen auch Werte drinnen stehen müssen; das ist fest vorgegeben und nicht veränderbar.

Es muss noch einen anderen Weg geben.

Ich bearbeite ein sehr großes Probelm mit Matlab und möchte die Lösung schrittweise durch Schleifendurchläufe verbessern. Dabei wird der Lösungsbereich der Matrix mit jedem Schleifendurchlauf kleiner, also mehr Elemente in der Matrix sind NaN-Elemente. Da ich die nicht brauche, könnten Sie durch solche Elemente ersetzt werden, die keinen Speicherplatz beanspruchen. Ich kann allerdings an der Matrix an sich nichts ändern, da die Position der Elemente von entscheidender Bedeutung ist, da aus der Position der einen Matrix heraus auf eine bestimmte Position einer anderen Matrix zugriffen werden muss.


Schwierig ...
Grüße,
Thomas
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: 27.08.2010, 16:39     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
nein mit Sparse Matrizen kann ich nicht arbeiten, da genau in den Felder wo Werte drinnen stehen auch Werte drinnen stehen müssen; das ist fest vorgegeben und nicht veränderbar.


genau das ist der Sinn von sparse Matrizen. Beispiel:
Code:
A = diag(1:4)
A_sparse = sparse(A)


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

Forum-Century

Forum-Century


Beiträge: 153
Anmeldedatum: 13.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2010, 18:10     Titel:
  Antworten mit Zitat      
Hallo Harald,

wenn ich meine Matrix als sparse matrix definiere, dann läuft mein Programm nicht mehr. Ich bekomme das folgende Fehlermeldung:

??? Error using ==> le
Sparse operand not supported.

Ich habe noch keine Ahnung, wie ich das Problem umschiffen kann.
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: 27.08.2010, 19:53     Titel:
  Antworten mit Zitat      
Hallo,

das bedeutet, dass <= (in welcher Form auch immer das verwendet wird) für sparse-Matrizen nicht definiert ist. Ich fürchte, du wirst uns genauer sagen müssen, was du machen willst, damit man dir eventuell weiterhelfen kann.

Grüße,
Harald
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: 28.08.2010, 23:07     Titel:
  Antworten mit Zitat      
Hallo Thomas,

wenn Du zu den einzelnen Zahlen noch die Indices ihrer Position in der Matrix brauchst, musst Du dazu ja keine Matrix erstellen.
Es würde reichen einen Vektor mit den Zahlen und zwei z.B. Speicherplatt-schonende UINT32-Vektoren mit den Indices zu erstellen. Das wären zwar 3 statt einem Array, aber die Verwaltung ist eventuell drastisch einfacher.

Gruß, Jan
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.