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

Kreis/Zylinder mit Medium füllen

 

Snupyman
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 12.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2015, 08:05     Titel: Kreis/Zylinder mit Medium füllen
  Antworten mit Zitat      
Moin,
ich möchte gerne einen Kreis oder lieber noch einen Zylinder mit einem Medium füllen. Im Prinzip soll es dann ein Koax-Kabel darstellen bei dem der Innenleiter einen anderen spezifischen Widerstand als der Außenleiter haben soll. Zusätzlich soll der Innenleiter in seiner Position variabel sein. Mein bisheriger Code funktioniert nur für Kreise deren Zentrum quasi im Ursprung liegen. Kann mir da jemand helfen? Der bestehende Code muss nicht fortgesetzt werden. Ich bin für neue Ideen offen^^

Code:

clear all; close all; clc;
r1=5; %Radius Kreis 1
xc1=0; % X-Zentrum
yc1=0; % y-Zentrum
t=0:0.01:2*pi;

r2=1; %Radius Kreis 2
xc2=0; % X-Zentrum
yc2=0; % y-Zentrum

Kreis1=[r1*cos(t)+xc1;r1*sin(t)+yc1];
Kreis2=[r2*cos(t)+xc2;r2*sin(t)+yc2];

x = linspace(6,-6,length(t)+xc1);
y = linspace(6,-6,length(t)+xc1);

roh = ones(length(t),length(t));
radius1 = zeros(length(t)+xc1,length(t)+xc1);
radius2 = zeros(length(t)+xc2,length(t)+xc2);
for i=1:length(t)
    for j=1:length(t)
        radius1(i,j)=sqrt(x(i)^2+y(j)^2);
        radius2(i,j)=sqrt(x(i)^2+y(j)^2);
        if radius2(i,j)<=r2
            roh(i,j)=2;
        elseif (radius1(i,j)>r2 && radius1(i,j)<=r1)
            roh(i,j)=3;
        end
    end
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: 13.05.2015, 12:50     Titel: Re: Kreis/Zylinder mit Medium füllen
  Antworten mit Zitat      
Hallo Snupyman,

Zitat:
ich möchte gerne einen Kreis oder lieber noch einen Zylinder mit einem Medium füllen.

Geht es um eine Visualisierung oder sollen dies Koordinaten in einem Array sein? Geht es um einen einfachen SURFACE-Befehl? Was genau bedeutet "mit einem Medium füllen"?

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 12.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2015, 14:19     Titel:
  Antworten mit Zitat      
Es geht darum das ich 2 Zylinder habe die ineinander Stecken, ähnlich einem Koax-Kabel. Das ganze Gebiet soll durch eine 3D-Matrix dargestellt werden. Im Bereich des Innenleites soll die Matrix den Wert 2 und im Bereich des Außenleiters den Wert 3 haben, überall sonst 0. Wobei 2 bzw 3 einen spezifischen Leitwert und damit eine Füllung wiederspiegeln. Diesen "Körper" brauch ich, damit ich anschließend an einem beliebigen Punkt einen Strom einspeisen kann um mir per Multipolentwicklung die elektrischen Feldlinien anzugucken.
0000000000
0000330000 So ungefähr soll die Matrix aussehen, aber auch in die tiefe
0032222300
0322222230
0322222230
0032222300
0003223000
0000330000
0000000000
Ich möchte also dem Außen- und Innenleiter einen Radius und eine Länge vorgeben. Und es soll dann eine solche Matrix daraus entstehen.
Private Nachricht senden Benutzer-Profile anzeigen
 
laternenjoe
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 25.02.15
Wohnort: Bochum
Version: ---
     Beitrag Verfasst am: 14.05.2015, 17:00     Titel:
  Antworten mit Zitat      
Du könntest eine 3. ForSchleife drumherum machen, dann hättest du ein 3Dim Array.

Code:

B=zeros(10,10,10);
for k=1:10
   for m=1:10
      for n=1:10
         B(k,m,n)= %bla
      end
   end
end

 

Ich glaub aber mit for Schleifen den passenden Algorithmus zu finden ist schon kompliziert. Da gibts bestimmt bessere Wege.

Oder Das Array/die Matrix 2 Dim und in die ersten 3 Spalten jeweils die entsprechenden x/y/z Werte und in die vierte den Wert und falls du eine 5. brauchst kannst du ja beliebig viele Spalten anlegen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Snupyman
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 12.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2015, 07:36     Titel:
  Antworten mit Zitat      
Danke für die Hilfe aber ich Versuche es mal mit if-Bedingungen und teile mir so den Raum in die entsprechenden Bereiche auf. Mal gucken ob das klappt^^
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.