|
raptus93 |

Forum-Fortgeschrittener
|
 |
Beiträge: 52
|
 |
|
 |
Anmeldedatum: 14.10.13
|
 |
|
 |
Wohnort: nrw
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.10.2014, 14:52
Titel: homogene Wertflächen
|
 |
|
 |
|
Hallo!
Ich habe eine Matrix, in der in rechteckiger Anordnung einsen sind, und der rest mit nullen gefüllt ist, so wie zB
[1 1 1 0 0 0 0 0;
1 1 1 0 1 1 1 0;
0 0 0 0 1 1 1 0;
0 0 0 0 1 1 1 0;]
Mein Ziel ist es nun, die Adressen der oberen linken und unteren rechten "Areas" zu bestimmen und in zwei Matrizen zu schreiben:
In Matrix A (2 Zeilen, #AreasSpalten) sollen die x und y Werte der oberen, linken Ecke einer Area stehen, und
in Matrix B (gleiche Ausdehnung) sollen die x und y Werte der unteren, rechten Ecke einer Area stehen.
In der ersten Zeile von A und B also jeweils die x-Werte, und in der zweiten die y-Werte.
Beispiel für die Matrix oben:
A =
[1 2;
1 5]
B =
[1 4;
3 7]
Ich habe es selbst schon versucht, und weiß auch schon, wie ich mit meinen Ergebnissen weiter mache, aber aktuell scheitere ich an diesem vermeindlich kleineren Problem.
Mein Matlab ist noch nicht so hervorragend, ich wäre für eine verständliche, ressourcenfressende Antwort dankbarer als für eine ultimativ effiziente, mir kryptische. [/b]Vielen vielen Dank für eure Aufmerksamkeit und Hilfe!
R93
|
|
|
|
|
raptus93 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 52
|
 |
|
 |
Anmeldedatum: 14.10.13
|
 |
|
 |
Wohnort: nrw
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.10.2014, 15:08
Titel:
|
 |
Ich schon wieder, Hi!
Um es nochmal in kleinere Schritte zu unterteilen:
Wie kriege ich die Adresse der linksten, obersten eins?
Das würde mir schon nen guten Tipp geben. Dann könnte ich nach unten und rechts iterieren, mir die Werte abspeichern, und dann die komplete Area null setzen. Und das ganze so lange, bis keine einsen, also keine areas mehr in meiner Matrix sind. Aber WIE GEHT DAS?
Mit find(allAreas) kriege ich nur einen Wert, der von oben links nach unten rechts durchgezählt ist.
Gruß
|
|
|
raptus93 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 52
|
 |
|
 |
Anmeldedatum: 14.10.13
|
 |
|
 |
Wohnort: nrw
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.10.2014, 16:08
Titel:
|
 |
Malzeug!
[code]
sizeMatrix = size(areas);
indexA = find(areas,1);
currentA = [floor(indexA / sizeMatrix(2)) , mod(indexA,sizeMatrix(2))];
[/code]
dieses Stückchen code macht aus dem eindimensionalen Laufindex, einen 2 dimensionalen Adressen index, vielleicht hilft dir das!
Oh, das schreibe ich grade ja selbst.
Nunja, vielleicht hilft es mir.
Vielen Dank mir selbst so weit xD
(nicht überreagieren, ist nur n Witz, kein Diss)
|
|
|
|
|
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.
|
|