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

Zeilen einer Matrix finden die mit gegebenen Vektor beginnen

 

tosten84
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: Wesseling
Version: R2007b R2010a
     Beitrag Verfasst am: 23.11.2010, 14:51     Titel: Zeilen einer Matrix finden die mit gegebenen Vektor beginnen
  Antworten mit Zitat      
Hallo,
hab ein kleines Problem mit dem durchsuchen einer Matrix:
Code:

M=[1 1 3 4 5; 2 1 0 8 2;1 1 4 6 7 ;6 3 1 2 3;]
 

Ich bräuchte jetzt eine Funktion, die mir alle Zeilenindizes der Zeilen ausgibt, die mit a=[1 1] beginnen.
Die Ausgabe sollte also bei gegebenes Matrix [1 3] lauten.
Habs schon mit find probiert
Code:

find(M(:,(1:2))==a)
 

Allerdings bekomme ich dabei nur ein Matrix dimension must agree Fehler zurück. Der Grund warum ich das nicht mit for-schleifen lösen will, ist dass sowohl die Matrix, als auch der Suchvektor beliebige Dimensionen haben können.
Grüße, und danke für eure hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 23.11.2010, 15:17     Titel:
  Antworten mit Zitat      
Das wird dir helfen:

http://www.mathworks.com/matlabcent.....exchange/23998-findsubmat

Gruß Achi
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
tosten84
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 10.05.10
Wohnort: Wesseling
Version: R2007b R2010a
     Beitrag Verfasst am: 23.11.2010, 15:29     Titel:
  Antworten mit Zitat      
Alles klar, hatte mir da auch grade eine kleine Funktion geschrieben die mit einer einzigen for schleife auskommt, danke für die schnelle Hilfe. Werde denke ich submat benutzen, scheint etwas schneller zu sein, wie meine eigene Funktion...
Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.11.2010, 17:21     Titel:
  Antworten mit Zitat      
Hallo

noch eine Möglichkeit:
Code:

M = [1 1 3 4 5; 2 1 0 8 2;1 1 4 6 7 ;6 3 1 2 3;]
a = [1 1]
str = sprintf('M(:,%d)==a(%d)&',[1:size(a,2); 1:size(a,2)])
find(eval(str(1:end-1)))
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.11.2010, 01:48     Titel: Re: Zeilen einer Matrix finden die mit gegebenen Vektor begi
  Antworten mit Zitat      
Hallo tosten84,

Zitat:

Ich bräuchte jetzt eine Funktion, die mir alle Zeilenindizes der Zeilen ausgibt, die mit a=[1 1] beginnen.


Code:

M=[1 1 3 4 5; 2 1 0 8 2;1 1 4 6 7 ;6 3 1 2 3;]
find(and(M(:, 1) == a(1), M(:, 2) == a(2)));
 

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