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

Koordinatenpaare finden

 

Schmelix
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 13.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2014, 12:26     Titel: Koordinatenpaare finden
  Antworten mit Zitat      
Hallo,
ich bin gerade etwas mit meinem Matlab Wissen am Ende und habe auch über die Suchfunktion nichts gefunden.

Ich habe zwei Matitzen X und Y. Aus diesen möchte ich gleiche Koordinatenpaare ermitteln.

z.B.
X=[5 7 8 2; 9 4 6 8; 1 2 5 7]
Y=[8 2 9 3; 2 5 1 9; 4 4 8 2]

Dann kommen (5,Cool und (8,9) jeweils zweimal vor.
Hat Matlab evtl. schon einen Befehlt um doppelte paare aus einem Plot herauszufinden?

Ich danke für eure Hilfe.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.12.2014, 13:53     Titel:
  Antworten mit Zitat      
Hallo,

ich würde X und Y in Spaltenvektoren umwandeln, das zusammenfügen, und dann darauf
Code:

anwenden.
Dann kann man schauen, wo die Differenz aufeinanderfolgender Zeilen immer 0 ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Schmelix
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 13.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2014, 19:29     Titel:
  Antworten mit Zitat      
Dank dir.
Ich hab da mal was gebaut, was auch sehr gut funktioniert. Geht sicher einfacher Smile

Code:

X=[1 5 7; 1 5 6; 9 5 7];
Y=[5 2 6; 5 2 6; 6 2 6];

XV=X(:);                            %Spaltenvektor der X Matrix
YV=Y(:);                            %Spaltenvektor der Y Matrix

M=[XV,YV];                          %Matrix mit den beiden Spaltenvektoren
M=sortrows(M);                      %Sortiert nach sich wiederholenden Elementen

MV1=M(:,1);                         %Produkt der beiden Spalten
MV2=M(:,2);
MP=MV1.*MV2;
Out=zeros(size(MP));                %Ausgangsvektor

i=1;                                %Zähler der äußeren Schleife
while(i~=length(MP));               %Solange bis Vektor durchgelaufen ist
    P=0;                            %Bedingung der zweiten Schleife
    k=1;                            %Zähler für die Werte der Ausgangsmatrix
    j=1;                            %Zähler für die zu untersuchenden Zeilen
    while(P==0)
     if (j==length(MP))             %Abbruchbedingung falls der Vektor durchgelaufen ist
         P=1;
     elseif (MP(i)-MP(i+j)==0)      %Immer das nächste Vektor Element wird untersucht. k wird im 1 erhöht
        k=k+1;                      %k ist die Anzahl der vorhandenen Koordinatenpaare
        Out(i)=k;
        j=j+1;                      
     elseif (j==1)                  %Bedingung für nur einmal vorhandene Koordinatenpaare    
         Out(i)=1;
         i=i+j;
         P=1;
     else
         i=i+j;
         P=1;
     end
    end
end

if (MP(i)-MP(i-1)~=0)
  Out(length(MP))=1;
end

 



Für
Code:

M =                        
     1     5                            
     1     5                            
     5     2                            
     5     2                            
     5     2                            
     6     6                            
     7     6                            
     7     6                            
     9     6  

Out =
     2
     0
     3
     0
     0
     1
     2
     0
     1                  
 
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.