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

zufallszahl

 

michael123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.01.2013, 14:39     Titel: zufallszahl
  Antworten mit Zitat      
hallo

bin ein ziemlicher matlab neuling!

gibt es eine eingabe die mir zB.

wenn ich 5 zahlen von 1-5 haben möchte und die zufällig erzeugen

zb. 3-2-4-5-1

glg michael


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 06.01.2013, 15:24     Titel:
  Antworten mit Zitat      
Hallo

RANDPERM ist das was du suchst

Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
michael123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2013, 09:28     Titel: danke
  Antworten mit Zitat      
danke genau das habe ich gesucht!
Gibts das gleiche auch für variablen zB. a, b, c, d

eine weitere Frage hab ich noch ! egal ob ich jetzt variablen oder zahlen habe. kann ich den positionen in einer matrix punkte zuweisen!

zB. a 1
c 2
b 3

oder für zahlen


zB. 3 1
1 2
2 3


danke für die Antwort

glg michael
 
michael123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2013, 11:44     Titel:
  Antworten mit Zitat      
denny hat Folgendes geschrieben:
Hallo

RANDPERM ist das was du suchst

Code:


danke genau das habe ich gesucht!
Gibts das gleiche auch für variablen zB. a, b, c, d

eine weitere Frage hab ich noch ! egal ob ich jetzt variablen oder zahlen habe. kann ich den positionen in einer matrix punkte zuweisen!

zB. a 1
c 2
b 3

oder für zahlen


zB. 3 1
1 2
2 3


danke für die Antwort

glg michael
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 07.01.2013, 12:35     Titel:
  Antworten mit Zitat      
Hallo

verstehe ich nicht was du meinst. Geht es hier um zufällige Werte-Zuweisung?
Die zufällig generierten Werte, kann man z.b. über DEAL zuweisen

Code:

v = num2cell(randperm(5))
[a,b,c,d,e]=deal(v{:})
 
Private Nachricht senden Benutzer-Profile anzeigen
 
michael123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2013, 12:42     Titel: hallo
  Antworten mit Zitat      
denny hat Folgendes geschrieben:
Hallo

verstehe ich nicht was du meinst. Geht es hier um zufällige Werte-Zuweisung?
Die zufällig generierten Werte, kann man z.b. über DEAL zuweisen

Code:

v = num2cell(randperm(5))
[a,b,c,d,e]=deal(v{:})
 


nein keine zufällige wertzuweisung

die zahlen sollen zufällig erzeugt werden, das is mit randperm schon gut so

jetzt stehen die zahlen in einer reihenfolge
zB. 2 3 1
und jetzt will ich der ersten position immer einen punkt geben
der zweiten zwei punkte und der dritten drei punkte

es geht hier darum das wenn ich zwei personen habe die 4 güter zB aufteilen wollen.

A will 1 lieber als 2 dann 3 dann vier

B will 3 dann 2 dann 1 dann vier

ich will jetzt ihren preferenzen punkte zuteilen

das was sie als ersten wollen

A 1 bekommt 1 punkt
B3 bekomt auch einen punkt

und das werde ich dann vergleichen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 07.01.2013, 14:59     Titel:
  Antworten mit Zitat      
Hallo

trotzdem ist mir nicht klar was du meinst, aber
nach deinem Beispiel vermute du willst folgendes:

Code:

AnzPers    = 2
AnzWare  = 4
V          = zeros(AnzPers , AnzWare )

for k=1:AnzPers
   V(k,:) = randperm(AnzWare)
end

 
Private Nachricht senden Benutzer-Profile anzeigen
 
michael123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2013, 15:43     Titel: hallo
  Antworten mit Zitat      
denny hat Folgendes geschrieben:
Hallo

trotzdem ist mir nicht klar was du meinst, aber
nach deinem Beispiel vermute du willst folgendes:

Code:

AnzPers    = 2
AnzWare  = 4
V          = zeros(AnzPers , AnzWare )

for k=1:AnzPers
   V(k,:) = randperm(AnzWare)
end

 


danke aber das was du geschrieben hast hab ich schon

ich möchte jetzt genau aus dem etwas weitermachen

zB. person A hat die präferenz 1 2 3 4
und person B hat die präferenz 1 3 2 4


jetzt werden güter die so aufgeteilt zuerst darf person A dann person B dann Person A dann person B

Person A erhält als erstes das Produkt 1
Person B kann Produkt 3 nur nehmen da 1 schon weg ist
Person A nimmt 2 und person B nimmt 4

Person A hat jetzt Produkt 1 und Produkt 2 erhält somit 2 Punkte
da sie die ersten beiden Präferenzen waren
Person B hat jetzt Produkte 3 und 4 und erhält 6 Punkte da
sie die Präferenzen 2 und 4 waren

so möchte ich das zählen ich hab aber keine Ahnung wie ich auf das komme
zB eine matrix erzeugen welche

A 1 2 0 0
B 0 2 0 4

dann kann ich die summe nehmen aber ich weiß leider nicht wie ich das in matlab schreiben kann.

ich hoffe du kannst mir helfen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 08.01.2013, 18:13     Titel:
  Antworten mit Zitat      
Hallo
im Prinzip was du versuchst ist das Ziehen ohne Zurückzulegen nach zu implementieren.

so in der Richtung möchtest du das haben?
Code:

AnzKugeln   = 4;
AnzPers     = 2;
V           = zeros(AnzPers , AnzKugeln );
P           = zeros(AnzPers , AnzKugeln );
for k=1:AnzPers
   V(k,:) = randperm(AnzKugeln);
end


Kugeln = 1:AnzKugeln ;
k      = 1;
p      = 1;
% Zugposition für jede Person
lk     = ones(1,AnzPers);
while ~isempty(Kugeln)
      Kugel  = V(p,lk(p));
      if any(Kugeln==Kugel)
        P(p,lk(p))  = lk(p);
        Kugeln(Kugeln==Kugel)=[];        
      elseif ~isempty(Kugeln)        
         lk(p) = lk(p)+1;    
         continue;
      end
      % nexte Person zieht:
      p       = p+1;
      p       = mod(p-1,AnzPers)+1;
end
P
Punkte = sum(P,2)

 
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.