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

zufällig mit Kugeln gefüllter Zylinder

 

martini89
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2013, 14:52     Titel: zufällig mit Kugeln gefüllter Zylinder
  Antworten mit Zitat      
Hallo zusammen,

ich stehe derzeit vor einem kleinen Problem. Und zwar möchte ich einen Zylinder mit Kugeln bestimmten Radius füllen. Für die Simulation will ich mir in MATLAB nun Ebene für Ebene Zufallskoordinaten geben lassen. Soweit so gut. Nur habe ich jetzt die Bedingung, dass zwischen den Kugelzentren ein Abstand >= Durchmesser sein muss.
Gibt es irgendwie die Möglichkeit Zahlen aus der Matrix zu bekommen ohne sie vorher nach größe zu sortieren?

Das wäre mir eine große Hilfe! Danke schon mal im Voraus!
Hier mein Code


zd = 1.8;
zh = 1.5;
dk = 0.009;


for k = 1:100
V = (zd-dk/2)*rand(k,2)+dk/2;
end
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.03.2013, 16:06     Titel: Re: zufällig mit Kugeln gefüllter Zylinder
  Antworten mit Zitat      
Hallo martini89,

Zitat:
Gibt es irgendwie die Möglichkeit Zahlen aus der Matrix zu bekommen ohne sie vorher nach größe zu sortieren?

Die Frage ist unklar. Aus welcher Matrix möchtest Du nach welchen Kriterien welche Werte extrahieren? Ein kleines Beispiel wäre wohl erhellend.

Was leistet der gepostete Code, und was kann er noch nicht?

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

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 03.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2013, 15:45     Titel:
  Antworten mit Zitat      
Hallo Jan,
schon einmal danke für die Antwort.

Code:
% Hier mein Code:
zd = 1.8;                                                                  
zh = 1.5;                                                                  
dk = 0.009;


for i = 1:500;
   
    A = (zd-dk/2)*rand(i,2)+dk/2;             %gibt Zufallskoordinaten xy aus
   
    if i==1                                               %erste Kugel soll am Boden liegen
       
        H = dk/2;
       
    elseif A == ismember(A,F)
       
        H = dk/2+dk;
   
    else
        H = dk/2;
       
    end
   
   
    B = [A(i,1:2), H];                                                  
   
    if dist==dk                                                            
        disp('erster Kontakt')
         
    elseif dist>dk && H==dk/2                    
        F(i,1:3) = B;                                                    
    else
        return
    end
    i = i+1;    
end


Ich möchte mit diesem Code zufallskoordinaten generieren.

mit diesem Ausdruck wollte ich erreichen, dass wenn die x,y-Koordinaten so schon in der Matrix stehen, soll er die Z-Koordinate um dk erhöhen. Aber irgendwie klappt das so nicht. Gibt es da noch einen anderen Weg?

elseif A == ismember(A,F)

H = dk/2+dk;

Vielen dank schon mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 30.03.2013, 03:46     Titel:
  Antworten mit Zitat      
Überleg du dir mal was die Variablen A, B und F sein sollen. Dann kommst du vielleicht auf den ersten Fehler.
Überleg dir dann, was A für ein Variablentyp sein soll (ismember??). Und dann überleg dir, ob dir Kugelzentren genügen, von denen (einem jeden!) du Kreise/Kugeln ziehst oder ob du die Kugeln direkt ablegst (->ismember.)

Kurzum: dein Problem ist alles andere als klein. Durchdenk es erstmal für Kreise in ner Ebene.
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
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.