|
|
|
Hilfe bei Bedingungsformulierung |
|
| Matlablooser:D |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.09.2011, 17:04
Titel: Hilfe bei Bedingungsformulierung
|
 |
Hallo liebe Forumgemeinde,
zu meinem Problem:
ich habe eine Wertematrix der Größe m x n mit lauter unterschiedlichen Werten. Jetzt will ich, dass er die Bereiche heraussucht in denen die Summe der Werte am höchsten ist.
Beispiel:
Meine Matrix hat die Größe 20x20.
Dann soll die Bedingung immer 5x5 große Bereiche berechnen. Wenn die Summe kleiner als ein gewisser Wert ist, soll er das Feld 0 setzen.
Geht sowas in einer if Schleife? Und wie?
Gruß
|
|
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 09.09.2011, 17:43
Titel: Re: Hilfe bei Bedingungsformulierung
|
 |
| |
 |
|
Hallo Matlablooser,
| Zitat: |
| Jetzt will ich, dass er die Bereiche heraussucht in denen die Summe der Werte am höchsten ist. |
Das widerspricht sich: "Bereiche" ist plural, "am höchsten" impliziert aber einen einzigen Wert.
| Zitat: |
Meine Matrix hat die Größe 20x20.
Dann soll die Bedingung immer 5x5 große Bereiche berechnen. Wenn die Summe kleiner als ein gewisser Wert ist, soll er das Feld 0 setzen. |
Das ist aber ein anderes Problem als das aus dem ersten Absatz.
Welches Feld soll auf 0 gesetzt werden? Was soll am Rand geschehen? Soll die Einteilung in 5x5 Bereiche fließend sein, so dass die einzelnen Bereiche sich überlappen?
Es gibt keine IF-Schleifen, nur FOR und WHILE.
Bitte versuche Dein Problem klar zu formulieren. Es lohnt sich nicht mit Lösungsvorschlägen anzufangen, wenn die Frage noch gar nicht eindeutig ist. Und dann fange mal an Dein Programm zu implementieren bis konkrete Probleme auftauchen. Diese lassen sich dann hier sehr effizient lösen.
Gruß, Jan
|
|
|
|
| Matlablooser:D |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.09.2011, 18:18
Titel:
|
 |
OK Jan ich habe es versucht. Matlab bringt kein Fehler, aber aus passiert auch nicht?
|
|
|
|
| Matlablooser:D |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.09.2011, 18:39
Titel:
|
 |
Wenn ich den Quellcode so ergänze kommt die Fehlermeldung:
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 09.09.2011, 22:16
Titel:
|
 |
Hallo Matlablooser,
Das sieht schon mal ganz gut aus.
Die Fehlermeldung erscheint wohl in dieser Zeile:
Mit dem debugger kannst Du das Problem finden:
Dies läßt Matlab stoppen, wenn ein Fehler auftritt. Dann kannst Du Dir den Wert der rechte Seiten im Command-Window anzeigen lassen: sum(D(i:i+5,j:j+5)) liefert einen Vektor zurück.
Hier gibt es weitere Probleme:
Summe(i,j) ist ein Skalar, zeros(5,5) ist eine Matrix.
Viel Erfolg, Jan
|
|
|
|
| Matlablooser |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.09.2011, 13:03
Titel:
|
 |
Hey Jan,
die Frage ist, ob ich überhaupt so ansetzen kann oder ob ich mir hier ein Feld erstellen muss, dass meine Matrix abtastet?
Gruß
|
|
|
|
| Matlablooser:D |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 11.09.2011, 10:10
Titel:
|
 |
| Jan S hat Folgendes geschrieben: |
Die Fehlermeldung erscheint wohl in dieser Zeile:
Das stimmt!
Mit dem debugger kannst Du das Problem finden:
Dies läßt Matlab stoppen, wenn ein Fehler auftritt. Dann kannst Du Dir den Wert der rechte Seiten im Command-Window anzeigen lassen: sum(D(i:i+5,j:j+5)) liefert einen Vektor zurück.
Der Wert/Vector wird leider nicht angezeigt.
|
|
|
|
|
| Matlablooser:D |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.09.2011, 09:34
Titel:
|
 |
Jetzt habe ich es nochmal anders geschrieben, bekomme aber immer noch einen Fehler. Allerdings zeigt er mir jetzt schon einmal das "Feld" an.
Ich brauche Hilfe bitte...
|
|
|
|
| _Peter_ |

Moderator
|
 |
Beiträge: 537
|
 |
|
 |
Anmeldedatum: 08.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.10, 2010a
|
 |
|
|
 |
|
Verfasst am: 12.09.2011, 13:14
Titel:
|
 |
| Matlablooser:D hat Folgendes geschrieben: |
| Jetzt habe ich es nochmal anders geschrieben, bekomme aber immer noch einen Fehler. |
Welchen Fehler?Fehlermeldung?
| Matlablooser:D hat Folgendes geschrieben: |
| Jan S hat Folgendes geschrieben: |
Mit dem debugger kannst Du das Problem finden:
Code:
Dies läßt Matlab stoppen, wenn ein Fehler auftritt. Dann kannst Du Dir den Wert der rechte Seiten im Command-Window anzeigen lassen: sum(D(i:i+5,j:j+5)) liefert einen Vektor zurück.
|
Der Wert/Vector wird leider nicht angezeigt.
|
Sondern was passiert da? Irgendwass muss er anzeigen. Ob Fehlermeldung oder Wert.
_________________
Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
|
| Matlablooser:D |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.09.2011, 13:19
Titel:
|
 |
Die Fehler meldung ist noch die gleiche:
??? Subscripted assignment dimension mismatch.
gibt eine zeros Matrix aus. Aber wie muss man es anders schreiben?
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.09.2011, 22:29
Titel:
|
 |
Hallo Matlablooser:D,
Ein Forum kann keinen Programmierkurs ersetzen. Es wäre nicht sinnvoll irgendeine Lösung aufzuschreiben, da Du offensichtlich schon Schwierigkeiten hast, Deinen eigenen Code zu verstehen. Zudem sehe ich immer noch kleinen Zusammenhang zwischen dem geposteten Code und der Beschreibung:
| Zitat: |
ich habe eine Wertematrix der Größe m x n mit lauter unterschiedlichen Werten. Jetzt will ich, dass er die Bereiche heraussucht in denen die Summe der Werte am höchsten ist.
Beispiel:
Meine Matrix hat die Größe 20x20.
Dann soll die Bedingung immer 5x5 große Bereiche berechnen. Wenn die Summe kleiner als ein gewisser Wert ist, soll er das Feld 0 setzen. |
Dein Code und die beiden Abschnitte scheinen drei unterschiedliche Probleme zu betreffen. Deshalb vermute ich, dass Du erstmal herausfinden sollten, was du genau berechnen möchtest. Danach können wir Dir wohl auch eher weiterhelfen.
Gruß, Jan
|
|
|
|
|
|
|
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.
|
|