|
|
|
Error: Improper assignment with rectangular empty matrix |
|
| claraleinchen |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 03.12.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.12.2011, 12:16
Titel: Error: Improper assignment with rectangular empty matrix
|
 |
Hallo,
Ich soll ein Programm erstellen, dass eine Zerlegung an bestimmten Stellen verfeinert.
Soweit funktioniert das Programm auch schon nur manchmal bekomme ich eine Fehlermeldung: Improper assignment with rectangular empty Matrix
Leider sehe ich den Fehler nicht, kann mir vielleicht jemand helfen?
|
|
|
|
|
|
| Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 11.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.12.2011, 14:16
Titel:
|
 |
Hallo claraleinchen,
wenn irgendwo ein Fehler auftritt, solltest Du zuerst einmal schauen in welcher
Zeile der Fehler auftritt, welche Variablen beteiligt sind, wie deren Inhalt ist.
Kann es sein, dass irgendwo eine leere Matrix erzeugt wird, wo Du es gar nicht
erwartest.
Du schreibst, der Fehler tritt nur manchmal auf. Was ist in diesen Fällen anders
als in allen anderen?
grüße
Sirius
|
|
|
|
| claraleinchen |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 03.12.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.12.2011, 14:38
Titel:
|
 |
Der Fehler entsteht, wenn ich meinen Vektor g, mildem ich die Zerlegung ergänzen möchte, mit Werten fülle.
Ich gebe in "ind" die oberen Werte des Intervalls in der Zerlegung an, die verfeinert werden sollen.
Dann suche ich die nächst kleineren Werte und suche dann den Punkt der dazwischen liegt.
Eine leere Matrix wird dort doch nicht erzeugt, oder?
Ich bilde ja Werte und will sie in den Vektor g eingeben.
Wenn ich einfach so Listen eingebe funktioniert es.
Sobald ich aber zerl und ind vorher speichere und dann in die Funktion eingebe, bekomme ich die Fehlermeldung.
Ich kann mir leider nicht erklären woran es liegt.
|
|
|
|
| Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 11.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.12.2011, 15:07
Titel:
|
 |
Hallo claraleinchen,
wenn Du Dir anschaust, was g(i) zugewiesen wird,
kannst Du den Fehler auf den Befehl
zurückverfolgen.
Es gibt kein Element in zerl das kleiner ist als ind(i),
dadurch entstehen Deine leeren Matrizen.
Gruß
Sirius
|
|
|
|
| claraleinchen |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 03.12.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.12.2011, 15:39
Titel:
|
 |
Danke für die schnelle Hilfe!
Allerdings weiß ich leider nicht wie ich dieses Problem umgehen kann.
Ich finde keine andere Möglichkeit den nächst kleineren Eintrag in der Liste zu finden.
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.12.2011, 17:43
Titel:
|
 |
Hallo,
eine andere Möglichkeit hilft auch nicht weiter, wenn es keinen kleineren Wert gibt.
Anders gesagt: du solltest abfangen, was passieren soll, wenn kein kleinerer Wert gefunden wird, z.B.
Wenn es eigentlich nciht sein kann, dass es keinen kleineren Wert gibt, solltest du den Algorithmus nochmal überdenken.
Grüße,
Harald
|
|
|
|
| Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 11.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.12.2011, 17:58
Titel:
|
 |
Hallo Claraleinchen,
wie werden die ind-Werte erzeugt? Du mußt beim Aufruf von refine sicherstellen,
dass alle Zahlen in ind > min(zerl).
Bist Du sicher, dass find hier richtig ist?
find ermittelt die Positionen in zerl, an denen der Wert kleiner
als ind(i) ist. Wenn ich Dich richtig verstanden habe, soll in k aber
der größte Wert von zerl < ind(i) stehen, also max(zerl(zerl<ind(i))).
Grüße
Sirius
|
|
|
|
| claraleinchen |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 03.12.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.12.2011, 19:06
Titel:
|
 |
Habs geändert und jetzt funktioniert es.
Da ich matlab Neuling bin, dachte ich, ich muss den Wert suchen und bin dann irgendwie auf find gekommen
Danke für eure Hilfe!
|
|
|
|
|
|
|
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.
|
|