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

Pfeil in einen 3-D Plot legen

 

Masterarbeit_Leitung

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2015, 08:53     Titel: Pfeil in einen 3-D Plot legen
  Antworten mit Zitat      
Morgen zusammen,

für meine Masterarbeit berechne ich das Verhalten von Kabeln unter verschiedenen Strömen und Temperaturen.

Code:
% Berechnung der Fläche

for Temp_Umgebung=Temp_start:Temp_step:Temp_fine
    for Strom=Strom_start:Strom_step:Strom_fine

        P_Leitung_1_5m_50_mm_Al(1,i)= Roh_Al*Laenge_L2*(1+alpha_Al*(Temp_Umgebung-T_0))*Strom*Strom/QS_L2_Al;
        Temp_Umgebung_var_Al(1,i) = Temp_Umgebung;
        Strom_var_Al(1,i) = Strom;
        i=i+1;
     end
 end

 


Code:
% Plotten der Fläche

figure;
[X,Y,Z] = griddata(Strom_var_Cu,Temp_Umgebung_var_Cu,P_Leitung_1_5m_50_mm_Cu,x_init,y_init,'natural');
k = mesh (X,Y,Z)
zlim([0 7])
m = set(gca,'Color',[0.75 0.75 0.75]);
 


Meine Frage ist nun, in diese dargestellte Fläche möchte ich einen Pfeil mit Text legen wie mache ich das am Besten ? Habe den Plot mal als .png angehängt damit Ihr genau wisst was ich mir vorstelle. Ich habe leider absolut keine Idee.


Vielen Dank schon mal Smile

Leitung 1.png
 Beschreibung:

Download
 Dateiname:  Leitung 1.png
 Dateigröße:  134.2 KB
 Heruntergeladen:  427 mal


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.06.2015, 09:32     Titel: Re: Pfeil in einen 3-D Plot legen
  Antworten mit Zitat      
Hallo Masterarbeit_Leitung,

Wenn Du Deine Lieblings-Internet-Suchmaschine nach "Matlab arrow" suchst wirst Du z.B. in Matlabs "FileExchange" viele Lösungen finden.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Masterarbeit_Leitung

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.06.2015, 11:15     Titel:
  Antworten mit Zitat      
Danke für die Idee!!!

Leider finde ich keine nützlichen Tipps um einen Pfeil inneralb eines 3-D Plots zu setzen für 2-D wird es gezeigt da habe ich zum Beispiel:

Code:
% Beispiel 1

h = annotation('arrow');
h.X = [ xBegin xEnd ];
h.Y = [ yBegin yEnd ];

 

http://de.mathworks.com/help/matlab.....tionarrow-properties.html
aber wenn ich das ganze jetzt einfach Stumpf auf 3-D erweitern will bekommt ich Fehler bzw. mein Plot wird nicht richtig angezeigt...

Code:
% Beispiel 2

For 3D vector
       p0 = [1 2 3];
       p1 = [4 5 6];
       vectarrow(p0,p1)

 

http://www.mathworks.com/matlabcent.....t-2d-3d-vector-with-arrow
Allerdings bekomme ich hierbei immer einen Fehler 'Undefined variable.. vectarrow'. Muss ich den dann vorher i.wo erst deklarieren ?



So schwer kann das ja wohl nicht sein oder ?

Gruß
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.06.2015, 13:16     Titel:
  Antworten mit Zitat      
Hallo Masterarbeit_Leitung,

Zitat:
http://www.mathworks.com/matlabcent.....t-2d-3d-vector-with-arrow
Allerdings bekomme ich hierbei immer einen Fehler 'Undefined variable.. vectarrow'. Muss ich den dann vorher i.wo erst deklarieren ?

Bitte poste den verwendeten Code und eine vollständige Kopie der Fehlermeldung. Ungefähre Beschreibungen führen oft zu Verbesserungsvorschlägen, die noch mehr verwirren.

Hast Du das File vectarrow.m in einem Ordner gespeichert, der zum Matlab path gehört? Siehe pathtool und addpath .

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Masterarbeit_Leitung

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2015, 15:33     Titel:
  Antworten mit Zitat      
Hi Jan,

tut mir leid, dass ich mich so spät erst melde.

Code:
% Verwendeter Code
[X,Y,Z] = griddata(Strom_var_Al,Temp_Umgebung,R_Leitung,x_init,y_init,'natural');
l = mesh (X,Y,Z);
zlim([0 7]);
h = set(gca,'Color',[0.75 0.75 0.75]);

title(Leitungslänge = 1.5m und Querschnitt = 6mm^2 - Gewicht = 0.202 Kg','Fontsize',15);
xlabel('Strom [A]');
ylabel('Temperatur [°C]');
zlabel('Verlustleistung [W]');
hold on;
p0=[3 45 0.05];
p1=[22 85 4];
vectarrow(p0,p1);
 


Code:
% Fehlermeldung
Undefined function or variable 'vectarrow'.

Error in Dateiname (line 110)
vectarrow(p0,p1);
 


Der Fehler springt einen bestimmt schon fast an -.-*
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.07.2015, 08:09     Titel:
  Antworten mit Zitat      
Hallo Masterarbeit_Leitung,

Da fehlt ein Quote im title Befehl.

Ich frage nochmal:
Hast Du das File vectarrow.m in einem Ordner gespeichert, der zum Matlab path gehört? Siehe pathtool und addpath .

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2015, 08:25     Titel:
  Antworten mit Zitat      
Guten morgen Jan,

tut mir leid die Frage habe ich vergessen zu beantworten.

Ja habe das File in einem Ordner gespeichert und in Matlab "add to path" gewählt.

Code:
% das eine Quote habe in meinem Programm drin - ich musste nur den Text davor löschen und dann habe ich wohl das eine mit gelöscht

title('Leitungslänge = 1.5m und Querschnitt = 6mm^2 - Gewicht = 0.202 Kg','Fontsize',15);

 



Gruß
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.07.2015, 08:32     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ja habe das File in einem Ordner gespeichert und in Matlab "add to path" gewählt.

Okay. Und war das auch erfolgreich? Teste mal:
Code:
which('vectarrow')

Wird das M-File gefunden? Hast Du den modifizierten Pfad dann auch abgespeichert, damit er nach einem Neustart von Matlab auch noch vorhanden ist?

Das Problem liegt auf jeden Fall nicht im geposteten Code.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Masterarbeit_Leitung

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2015, 09:04     Titel:
  Antworten mit Zitat      
Ja habe das Programm geschlossen - Neustart. Er findet den Ordner direkt und solange ich den Befehlt

Code:

p0=[3 45 0.05];
p1=[22 85 4];
vectarrow(p0,p1);
 

nicht verwende plottet er mir auch alles.

Füge ich nun:

Code:
% Name meines Files
which('Cu_AL_Kabelberechnung')
 


hinzu. kommt Direkt der Pfad meines m.Files


Zur Info:

Ich verwende

Matlab 2015a (8.5.0.19763)
64-bit Windows 7

Was ich noch nicht so ganz verstanden habe ist der "vectarrow" Befehl. ist dieser einfach nicht in der neuen Matlab Version vorhanden ? Muss ich den zuerst deklarieren?

Vielen Dank für deine Hilfe
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.07.2015, 10:05     Titel:
  Antworten mit Zitat      
Hallo Masterarbeit_Leitung,

Wir reden eindeutig aneinander vorbei.

Es geht nicht darum, die Funktion "Cu_Al_Kabelberechnung" zu finden, sondern die Funktion "vectarrow":
Code:
which('Cu_AL_Kabelberechnung')    % NEIN!
which('vectarrow');

Bitte lies die Antworten gründlich und beantworte sie genau so, wie sie gestellt sind. Ich hatte ganz klar nach "which('vectarrow')" gefragt.

Zitat:
Was ich noch nicht so ganz verstanden habe ist der "vectarrow" Befehl. ist dieser einfach nicht in der neuen Matlab Version vorhanden ? Muss ich den zuerst deklarieren?

Du hattest den Link dazu im FileExchange angegeben: http://www.mathworks.com/matlabcent.....t-2d-3d-vector-with-arrow
Im FileExchange posten Benutzer Funktionen, die für andere nützlich sein könnten. Man kann diese Funktionen dort downloaden, in einem lokalen Ordner speichern und danach verwenden. Die Funktionen aus dem FileExchange sind ganz sicher nicht einfach in einer neuen Matlab-Version vorhanden.

Ich hatte bereits zwei mal gefragt:
Zitat:
Hast Du das File vectarrow.m in einem Ordner gespeichert, der zum Matlab path gehört?

Diese Frage bedeutet implizit, dass Du das File "vectarrow.m" downloaden musst und in einem Ordner speichern, der zum Matlab path gehört.

Viel Erfolg, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Masterarbeit_Leitung

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2015, 10:29     Titel:
  Antworten mit Zitat      
Ja klar wenn man dann auch nicht so doof ist und die Datei vergisst runterzuladen. Dann funktioniert es auch -.-*

Ja habe die Datei runtergeladen - addPath - Run

Muss zwar jetzt den Pfeil noch anpassen so wie ich ihn will aber es funktioniert


Vielen Dank für die Geduld Smile !!!!! Very Happy Very Happy Very Happy
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.07.2015, 12:56     Titel:
  Antworten mit Zitat      
Hallo,

Gerne! Das Forum ist ja dafür da Probleme zu lösen. :-)

Jan
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.