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

homogene Wertflächen

 

raptus93
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 14.10.13
Wohnort: nrw
Version: ---
     Beitrag Verfasst am: 01.10.2014, 14:52     Titel: homogene Wertflächen
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


raptus93
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 14.10.13
Wohnort: nrw
Version: ---
     Beitrag Verfasst am: 01.10.2014, 15:08     Titel:
  Antworten mit Zitat      
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ß
Private Nachricht senden Benutzer-Profile anzeigen
 
raptus93
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 14.10.13
Wohnort: nrw
Version: ---
     Beitrag Verfasst am: 01.10.2014, 16:08     Titel:
  Antworten mit Zitat      
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)
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.