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

euklidische Distanz Zuordnung

 

str3ber
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2013, 16:27     Titel: euklidische Distanz Zuordnung
  Antworten mit Zitat      
Liebe Forummitglieder,
bin wie ihr so oft hört ein Neuling und brauche eure Hilfe. Ich habe die 2x2 Matrizen A und B und lasse von jeder Spalte von A die kürzeste Distanz zu den Spalten von Matrix B ermitteln.
Das ganze sieht so aus und funktioniert auch. (habe jetzt für A und B einfach mal ein paar Spalten eingefügt)
Code:

function ausgabe= Funktion(A,B)
A=[100,5;1 1;10 2]  %Schülerwohnort
B=[4,5;2,3;4,9;4,4] % Standorte Schule
[m,n]=size(A)
[o,p]=size(B)
for i=(1:m)
    for k=(1: o)
        count(k,: ) = norm(B(k,: ) - A(i,1));
    end
ausgabe(i,1) = min(count);
end

end


Nun zu meiner Frage um mir Arbeit zu sparen würde ich gerne nicht nur die kürzeste Distanz erfahren sondern auch welche Spalte von B nun auch zu der kürzestens Distanz geführt hat.
(Das liegt einfach am Sachzusammenhang das hinter jeder Spalte die Koordinate einer Schule steckt und ich somit sagen kann für Schüler 1 ist Schule Spalte 5 am kürzesten)

Könnt ihr mir an dieser Stelle weiterhelfen? komme nicht weiter! Dankeschön
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 23.05.2013, 17:09     Titel:
  Antworten mit Zitat      
Code:

min giebt auch den index zurück. in deinem fall also k das
Code:
A=[100,5;1 1;10 2]; %Schülerwohnort
B=[4,5;2,3;4,9;4,4]; % Standorte Schule
[m,n]=size(A);
[o,p]=size(B);
for i=(1:m)
    for k=(1:o)
    count(k,:)=norm(B(k, :)-A(i,1));
    end
    [X,I]=min(count);
    ausgabe(i,1:2)=[X,I];
end
Private Nachricht senden Benutzer-Profile anzeigen
 
str3ber
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2013, 22:14     Titel:
  Antworten mit Zitat      
super danke
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
str3ber
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2013, 08:39     Titel: Ausgabe aller Minima
  Antworten mit Zitat      
Mir ist etwas aufgefallen im Sachzusammenhang und deshalb bräuchte ich wenn es zwei Minima gibt die Ausgabe von beiden. Kann ich den min Befehl so ändern, dass er mir mehr als ein Minimum ausgibt?


Code:
A=[100,5;1 1;10 2]; %Schülerwohnort
B=[4,5;2,3;4,9;4,4]; % Standorte Schule
[m,n]=size(A);
[o,p]=size(B);
for i=(1:m)
    for k= 1:o
    count(k,:)=norm(B(k, :)-A(i,1));
    end
    [X,I]=min(count);
    ausgabe(i,1:2)=[X,I];
end


[EDITED, Jan, bitte Code-Umgebung benutzen - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
str3ber
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2013, 08:50     Titel:
  Antworten mit Zitat      
Hier die Definition:

[C,I] = min(...) finds the indices of the minimum values of A, and returns them in output vector I. If there are several identical minimum values, the index of the first one found is returned.

Wenn ihr eine Idee habt alle identischen Minima zu bekommen, dann wäre ich euch sehr dankbar.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.07.2013, 09:24     Titel: Re: Ausgabe aller Minima
  Antworten mit Zitat      
Hallo str3ber,

Dies findet die Indices der Minimal-Werte:
Code:
[X,I]=min(count);
allMins = find(count == X);

Zum Abspeichern benötigst Du wegen der unterschiedlichen Anzahlen der Minima wohl ein Cell-Array.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
str3ber
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2013, 10:49     Titel:
  Antworten mit Zitat      
habe mir den Beitrag zu create Cell array erarbeitet, komme aber trozdem nicht weiter ! kannst du mir einen tipp geben? danke für den anderen schoneinmal !
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 03.07.2013, 12:52     Titel:
  Antworten mit Zitat      
Code:
A=[100,5;1,1;10,2]; %Schülerwohnort
B=[4,5;2,3;4,9;4,4;4,9]; % Standorte Schule
[m,n]=size(A);
[o,p]=size(B);
for i=(1:m)
    for k= 1 : o
    count(k,:)=norm(B(k, :)-A(i,1));
    end
    [X,I]=min(count);
    ausgabe{i,1}=X;
    ausgabe{i,2}=find(count==X);
end

da du ja jetzt keine einzelnen werte mehr abspeicherst sondern unbekannt große arrays brauchst du hallt ein cell array.
grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
str3ber
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 23.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.07.2013, 22:09     Titel:
  Antworten mit Zitat      
okay danke hatte da einen Fehler, läuft super. Danke
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.