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

Punkte vergeben an Matrix

 

Unknowing
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2016, 09:22     Titel: Punkte vergeben an Matrix
  Antworten mit Zitat      
Hallo zusammen,

ich bin neu bei Matlab und würde gerne eine Funktion oder eine Schleife programmieren, die den Elementen einer Matrix bestimmte Punktzahlen zuordnet.

Konkret habe ich eine Funktion, die alle möglichen Permutationen von Elementen anzeigt. Also bei den Elementen 1, 2 und 3 gibt es 6 verschiedene Möglichkeiten, die Elemente anzuordnen.

123
132
213
312
231
321

Nun möchte ich für jede 1 in der Matrix 2 Punkte vergeben, für jede 2 in der Matrix einen Punkt und für jede 1 in der Matrix 0 Punkte. Die Funktion soll also alle Anordnungen durchlaufen und die Punkte vergeben und am Ende dann die "Alternative" mit den meisten Punkten auswählen.

Kann mir da vielleicht irgendjemand weiterhelfen? Das würde mich sehr freuen!

Herzliche Grüße
die Unwissende
Private Nachricht senden Benutzer-Profile anzeigen


gs
Forum-Century

Forum-Century


Beiträge: 172
Anmeldedatum: 17.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2016, 10:02     Titel:
  Antworten mit Zitat      
Meinst du sowas?

Code:

A=[1 2 3; 1 3 2; 2 1 3; 3 1 2; 2 3 1; 3 2 1]
A(A==1)=2
A(A==2)=1
A(A==1)=0
sum(A,2)
 


weiß zwar nicht warum du 2 mal die 1 abfragst, aber was solls
Private Nachricht senden Benutzer-Profile anzeigen
 
Unknowing
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 14.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2016, 10:08     Titel:
  Antworten mit Zitat      
Oh ich habe mich vertippt. Ich meinte für eine 1 in der Matrix 2 Punkte, für eine 2 einen Punkt und für eine 3 dann 0 Punkte.

Ich bräuchte es allgemeiner. Denn so ist es ja beschränkt auf 1, 2 und 3.

Die Funktion mit der Permutationen ist folgende:

Code:
function [R_1, R_2]=all_rankings(m)

all_permutations=perms(flipdim([1:m],2));

coded_rankings=[0:factorial(m)-1];

R_1=[coded_rankings' all_permutations];

for i=1:factorial(m)
    for j=1:m
        R_2(i,R_1(i,j+1))=j;
    end
end

R_2=[coded_rankings' R_2];

end


Und nun möchte ich für jede 1 in R_2 die höchste Punktzahl und für jede höhere Zahl in R_2 eine niedrigere Punktzahl, bis die höchste Zahl in R_2 null Punkte erhält.
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 - 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.