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, die einen bestimmten Wert enthalten

 

hanson10

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.01.2015, 19:43     Titel: Zeilen einer Matrix, die einen bestimmten Wert enthalten
  Antworten mit Zitat      
Hallo zusammen,

zunächst einmal möchte ich mich entschuldigen, falls es dieses thema schon irgendwo gibt, habe nichts gefunden, das mir hilft, deswegen lege ich es nun neu an. Und noch was, ich bin Matlab Neuling, also schonmal sorry, falls ich euch anfangs nicht gleich folgen kann Wink

Ich habe eine Matix A und möchte die Zeilennummer, der Zeilen die den Wert 2 beinhalten, wissen.
A= 1 2 3
2 3 1
5 6 4
1 0 1
4 2 4
4 2 8

Habe schon etwas rumprobiert, bekomme aber nur die genauen Positionen der zweier.
Bitte um Hilfe!


Sebastian
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 09.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.01.2015, 21:13     Titel:
  Antworten mit Zitat      
Moin,

so geht es auf jeden Fall.

Code:
A=[
1 2 3 ;
2 3 1 ;
5 6 4 ;
1 0 1 ;
4 2 4 ;
4 2 8 ;
];

k=1;
for i=1:6
    for j=1:3
        if A(i,j)==2
            B(1,k)=i;
            B(2,k)=j;
            k=k+1;
        end
    end
end


Kennt jemand eine Möglichkeit, dass mit
Code:
zu lösen? Wäre sicherlich wesentlich effizienter.

Grüße
_________________

Insanity means doing the same things over and over again and expecting a different result.
Private Nachricht senden Benutzer-Profile anzeigen
 
hanson10
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.01.2015, 21:29     Titel:
  Antworten mit Zitat      
schonmal danke für die antwort! Aber ich fände eine Lösung mit find oder ähnlichem besser, weil die matrix A hier nur eine Beispielmatrix war - die echte ist um einiges größer und evtl brauch ich das auch für eine andere nochmal..
Private Nachricht senden Benutzer-Profile anzeigen
 
Seban
Forum-Meister

Forum-Meister


Beiträge: 600
Anmeldedatum: 19.01.12
Wohnort: ---
Version: ab R2014b
     Beitrag Verfasst am: 10.01.2015, 03:14     Titel:
  Antworten mit Zitat      
Hallo zusammen,

So kann man es lösen:
Code:
A= [1 2 2;
    2 3 1;
    5 6 4;
    1 0 1;
    4 2 4;
    4 2 8];

B = A == 2;     % 1 an Stellen die gleich 2 sind, sonst 0 (logical)
C = sum(B, 2);  % zeilenweise summieren
D = find(C);    % Index für Werte ungleich 0 (also für Zeilen mit min. einer 2)

Grüße,
Seban
_________________

Richtig fragen
Debugging
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 10.01.2015, 14:52     Titel:
  Antworten mit Zitat      
oder auch
Code:
[r,~,~]=find(A==2);
unique(r)


oder
Code:

letzteres scheint am schnellsten zu sein Wink
grüße winkow
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
hanson10
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 09.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2015, 21:07     Titel:
  Antworten mit Zitat      
super, danke!
funktioniert (vorerst Wink)
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.