|
|
Einzelne Nullen aus Matrix löschen. |
|
Amper |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 27.05.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2010, 09:28
Titel: Einzelne Nullen aus Matrix löschen.
|
 |
|
 |
|
Morgen Zusammen,
ich weis jetzt ziemlich genau wie ich ganze Zeilen oder Spalten mit Nullen löschen kann da das hier mehr als ausreichend genau beschriebein ist ich hab aber leider ein etwas andere Problem.
Ich hab eine Matrix mit 140000*100 Elementen. Ich will jetzt die Nullen Löschen und den Rest der Matrix "nachrutschen" lassen.
Soll dann so aussehen:
A:
0 1 5 4 2 0
9 9 0 0 8 4
5 4 6 5 0 4
0 0 2 3 4 8
Ergebnis
A:
1 5 4 2 9 9
8 4 5 4 6 5
4 2 3 4 8 0
von mir aus kann das Ergebnis auch ein Fektor sein ich hab nur festgestellt das dann der Rechner etwas langsam wird wenn ich alle meine Daten als Fektor vorliegen habe..
Kann mir da jemand zu helfen?
Dann hab ich bei der gelegen heit noch eine Frage. Gibt es eine Forme oder Gröse die man bei Matrizen nicht überschreiten sollte? Ich habe festgestellt das ab einer bestimmten Gröse von Matrix mein rechner extrem langsam wird. Also doppelte daten menge in etwa 10fache rechen zeit. Woran kann das liegen?
Vielen Danke schon mal
|
|
|
|
|
Napoleon |

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 22.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2010, 11:37
Titel:
|
 |
Hi,
wenn du zb eine 3x3 matrix hast und da ist nur eine null, dann geht danach nix mehr mit nachrutschen.so vlt?
VG
_________________
Die Hartnäckigen gewinnen die Schlachten.
|
|
|
yankemen |

Forum-Century
|
 |
Beiträge: 104
|
 |
|
 |
Anmeldedatum: 14.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 32: 2008a & 2010a
|
 |
|
|
 |
|
Verfasst am: 13.08.2010, 12:16
Titel:
|
 |
Moin,
anschließend kannst Du mit
das wieder in die geeignete Form bringen. Allerdings musst Du sicherstellen, dass a aus 3*6 Elementen besteht, sonst meckert Matlab.
Die Größe der Matrizen liegt in Abhängigkeit vom System bei z.B. bei Xp mit 3GB RAM mit 2008a bei ca. 10 Mio Einträgen in double, das wäre eine 3000*3000-Matrix (~500MB). Langsam wird der Rechner auch, wenn er viele Variablen handhaben muss. Also Nicht benötigte Sachen wieder freigeben. Oder von double auf single oder gar integer umsteigen. Etc., gibt viele Parameter, die die Sache beeinflussen.
HTH,
yankemen
_________________
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke
|
|
|
aj.geissler |

Forum-Guru
|
 |
Beiträge: 251
|
 |
|
 |
Anmeldedatum: 26.11.07
|
 |
|
 |
Wohnort: Seeheim-Jugenheim
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2010, 12:43
Titel:
|
 |
Hi,
nette Übung. Habe mal versucht, die Aufgabenstellung in einer kleinen Funktion abzubilden.
Als kleines Beispiel:
Jetzt müssten die Zahlen wunschgemäß nachrücken.
Sicherlich kannst Du hier und da noch einige Operationen optimieren, damit sich dein Rechner wegen Speicherproblemen nicht beschwert.
Grüße
Andreas
_________________
Andreas Geißler
|
|
|
Amper |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 27.05.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2010, 13:40
Titel:
|
 |
Hey danke,
ich hatte da ihrgend was mit einer for schleife gebastelt aber das dann nach einer hableben Stunde laufzeit abgebrochen.
Adreas deine Funktion hat gerade mal 30sec gebraucht und so weit ich das sehen kann ist alles genau so wie ich das gerne hätte.
Also vielen dank noch mal
Amper
|
|
|
Napoleon |

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 22.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.08.2010, 13:41
Titel:
|
 |
Zitat: |
Ergebnis
A:
1 5 4 2 9 9
8 4 5 4 6 5
4 2 3 4 8 0 |
ahh jetzt verstehe ich was die letzte 0 zu bedeuten hat.(additional zero)
ganz nett gelöst
VG
_________________
Die Hartnäckigen gewinnen die Schlachten.
|
|
|
Amper |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 27.05.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.09.2010, 08:34
Titel:
|
 |
|
 |
|
Morgen Leute, morgen Andreas
ich habe deine "kleine Funktion" gut gebrauchen können. Lief auch alles super bis ich auf einmal immer volgende Fehlermeldung bekommen habe. Das merkwürdige daran ist, dass ich die Fehlermeldung auch bekomme wenn ich mit einer alten Matrix arbeite bei der fohr ein paar tagen noch alles ohne porbleme Lief.
Vieleicht weis ja einer von euch was ich falsch gemacht habe. Ich hab auch mal den Memory nachgesehen meiner meinung nach sollte da noch jede menge platz sein. Aber wer weis vielicht interpretier ich das ganze auch einfach falsch und ich brauch noch was ram.
Feherlermeldung
die ausgabe von memory sieht vor dem laden der Matrix so aus:
und nach dem laden der matriy so:
Maximum possible array: 210 MB (2.206e+008 bytes) *
Memory available for all arrays: 781 MB (8.185e+008 bytes) **
Memory used by MATLAB: 489 MB (5.133e+008 bytes)
Physical Memory (RAM): 1900 MB (1.992e+009 bytes)
edit by denny: Bitte bei BBCode in deinem Profile Häckchen löschen, damit die Code-Umgebung richtig dargestellt wird
|
|
|
Amper |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 27.05.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2010, 16:37
Titel:
|
 |
Ich hab zwar immer noch keine Ahung wie ich die ausgabe von memory deuten soll.
Jedoch hat sich mein Problem erledigt denn aus ihrgend welche mir nicht ersichtlichen gründen habe ich heute scheinba genug speicher zur verfügung.
Auserdem war es hilfreich die matrix in single statt doubel zu speichern.
wenn ihrgend jemand mir erkleren möchte wie was die angaben die memory ausgibt bedeuten wäre ich dankbar.
ansonsten hat sich das hier erledigt
bis dann amper
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|