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

Matrix nach Werten durchsuchen und in Vektor speichern

 

Fliegendes Opossum

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.01.2021, 17:54     Titel: Matrix nach Werten durchsuchen und in Vektor speichern
  Antworten mit Zitat      
Hallo Matlaber,

ich habe eine Matrix nur mit den Einträgen 0 und 1. Ich möchte jetzt die Matrix nach den 1 untersuchen und die Werte in einem Vektor speichern.
In dem Vektor soll dann nicht die 1 stehen, sondern die spalte, in der die 1 vorgekommen ist. Dabei soll die Matrix außerdem von oben nach unten untersucht werden.
Habe mich mit der find Funktion schon abgemüht, komme aber nie auf das gewünschte Ergebnis.
Also: - matrix von oben nach unten durchsuchen nach 1
- die Spalten mit dem Wert 1 in Abhängigkeit der Zeile in Vektor speichern


Wenn jemand einen Tipp hat, wäre ich sehr dankbar! An sich hört es sich nach einer einfachen Aufgabe an, hänge aber einfach fest.


Kein Roboter

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2021, 14:19     Titel:
  Antworten mit Zitat      
Code:
X = [18 3 1 11; 8 10 11 3; 9 14 6 1; 4 3 15 21]
[row,col] = find(X>0 & X<10,3)
M=[row col]



Damit hast du schonmal deinen Vektor, der zählt die von oben bis unten ganz durch. Ich hoffe, das hilft
 
Fliegendes Opossum

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2021, 14:25     Titel: nicht gannz perfekt
  Antworten mit Zitat      
Oh ja, das hat schonmal geholfen.
Allerdings habe ich nur noch das Problem, dass dein Code einfach die Matrix von oben bis unten durchschaut und die dann in dem Vektor auch untereinander stehen hat.
Also wenn ich eine 20x20 matrix habe (und wir mal vorraussetzen, dass alle werte 1 sind) , dann hätte ich einen 400x1 vektor.
Habe mich vielleicht auch etwas falsch ausgedrückt.
Wenn der Suchdurchlauf am Boden der Matrix angekommen ist, soll sie wieder von oben anfangen zu suchen. Das Ergebnis wäre dann aber auch kein vektor sondern eine matrix.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.01.2021, 18:50     Titel: Re: nicht gannz perfekt
  Antworten mit Zitat      
Hallo Fliegendes Opossum,

Kannst du ein kleines Beispiel mit Inputs und Outpts posten?

Gruß Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Fliegendes Opossum

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2021, 13:14     Titel: Beispiel
  Antworten mit Zitat      
Hallo Jan,

hier ein kleines Beispiel:
Input ist ein Matrix nur mit den Einträgen 0 und 1. Die Matrix ist 300x400 groß , war vorher ein Bid, das ich binarisiert habe. (1 weiß, 0 schwarz)

Output soll ganz genau genommen ein Vektor (bzw ganz viele) sein. Dieser Vektor soll die erste Stelle angeben, an der die 1 in dieser Spalte vorkommt. Also muss der Vektor auch 300x1 sein. Wenn keine 1 vorkommt, soll die 0 ausgeben werden. Ist die Stelle gefunden, soll sie in einem Vektor gespeichert werden und ab dieser Stelle soll weiter gesucht werden.
Ich hab mal in EXCEL was vorbereitet, so sollte es aussehen (s. Anhang).

Mit der Hilfe von kein Roboter dachte ich, hätte ich es wenigstens geschafft, den ersten Vektor zu finden aber bei genauerem Hinsehen ist der Output irgendwie ganz falsch. Also es gibt mir auf jeden fall nicht die richtige stelle aus.

Ich hoffe, so kann man mein Problem verstehen.
Vielen dank für die Hilfe Smile

GoMatlab.png
 Beschreibung:
Links Input, rechts output

Download
 Dateiname:  GoMatlab.png
 Dateigröße:  89.75 KB
 Heruntergeladen:  129 mal
 
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 - 2024 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.