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

Matrixbereiche abfragen und füllen

 

Timmy
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 02.05.13
Wohnort: Heilbronn
Version: ---
     Beitrag Verfasst am: 03.05.2013, 07:51     Titel: Matrixbereiche abfragen und füllen
  Antworten mit Zitat      
Guten Morgen liebe Matlab Geimeinde,

ich bin leider noch ein Grünschnabel was Matlab angeht.
Das Problem ist, dass ich eine gleich große Matrix habe, bspw 200x200.
Irgendwo in der Matrix stehen in 2 Spalten jeweils 1sen. Die Matrix sieht dann z.B so aus:

Code:
         00011000000100
         00001000001100
         00001000001000
         00001000011000
         00011000010000


Gibt es eine Möglichkeit den Bereich zwischen den 1sen ebenfalls mit einer 1 zu füllen?

Bin euch sehr dankbar für jede Form der Hilfe Smile

Gruß Timmy
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 03.05.2013, 09:07     Titel: Re: Matrixbereiche abfragen und füllen
  Antworten mit Zitat      
Zitat:
Irgendwo in der Matrix stehen in 2 Spalten jeweils 1sen. Die Matrix sieht dann z.B so aus:

Code:
00011000000100
         00001000001100
         00001000001000
         00001000011000
         00011000010000


Gibt es eine Möglichkeit den Bereich zwischen den 1sen ebenfalls mit einer 1 zu füllen?


Die Frage ist nicht eindeutig formuliert:
(FallI) Gibt es pro Zeile immer nur GENAU eine Stelle, an denen es zwei Einsen nebeneinander gibt? Und soll dann aus diesen 2x1 ein 3x1 werden (=> dann ist jede Zeile hinterher ein Element länger).

(Fall II) Oder gibt es nur genau zwei Blöcke von Einsen pro Zeile (1x oder 2x1 je Zeile) und der Bereich zwischen diesen 1-erBlöcken soll aufgefüllt werden?
also so:
Code:
00011111111100
         00001111111100
         00001111111000
         00001111111000
         00011111110000


Wie auch immer ein erster Ansatz wäre über die Suche nach den Indexen für '1' je Zeile üder 'find'.
Code:

for iZeile = 1:size(MatrixA,1)
    index1 = find(MatrixA(iZeile ,:) == 1);
end
 

Und dann entweder bei zwei nebeneinander liegenden Einsen eine dazwischen einfügen (Fall I).
Oder zwischen erstem Index und letztem Index je Zeile alles mit 1 überschreiben (FallII).
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Timmy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 02.05.13
Wohnort: Heilbronn
Version: ---
     Beitrag Verfasst am: 03.05.2013, 20:34     Titel:
  Antworten mit Zitat      
Hallo Martina,

du hast natürlich recht. Die Frage war nicht eindeutig formuliert. Ich meinte den 2. Fall.

Hat alles super funktioniert.

Vielen Dank für deine Hilfe!

Gruß
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.