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

Achse z.B. mit Wurzel(x) skalieren

 

Morben

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2011, 11:48     Titel: Achse z.B. mit Wurzel(x) skalieren
  Antworten mit Zitat      
Ich habe mal eine Frage, habe auch schon herum gesucht, finde aber einfach nicht das, was ich will.

Genau gesagt, möchte ich einen Plot erzeugen, der einen Strom über einer Spannung darstellt. Dabei soll der Plot aber so skaliert sein, dass ln(I) über V^(1/4) erzeugt wird. Wie funktioniert das?

Logarithmisch skalieren ist ja kein Problem mit den Funktionen semilogx und semilogy, aber sobald ich die Achsen nach einer anderen Vorschrift einteilen will, weiß ich nicht weiter.

Kann mir jemand helfen? Würde mich sehr freuen!


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.10.2011, 14:33     Titel: Re: Achse z.B. mit Wurzel(x) skalieren
  Antworten mit Zitat      
Hallo Morben,

Du kannst die XTicks auch manuell setzen:
Code:
plot(1:10, rand(2, 10));
set(gca, 'XLim', [1, 10], 'XTick', [1,3,5.2,10]);
 

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2011, 15:47     Titel:
  Antworten mit Zitat      
Aber das ändert ja die Form der Kurve nicht, sondern beschriftet nur die Achse anders. Somit nur eine Änderung der Beschriftung, nicht der Skalierung
 
Jan S
Moderator

Moderator


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

Dann ist mir dieser Satz nicht klar:
Zitat:
Dabei soll der Plot aber so skaliert sein, dass ln(I) über V^(1/4) erzeugt wird

Kannst Du bitte ein lauffähiges beispiel posten? In(I) und V^(1/4) ist nicht wirklich klar.

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



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.11.2011, 16:32     Titel:
  Antworten mit Zitat      
Code:

V = 0:.1:10;
V = V.^(1/4);
J = log(V);
figure;
plot(V,J);
 


Bei diesem Beispiel kommt logischerweise eine Kurve raus. Nun möchte ich die Achsen so skalieren, dass aus der Kurve im Plot eine Gerade wird. Verstehst du, was ich meine?

Anderes Beispiel:
Code:

V = 0:.1:10;
J = log(V);
figure;
semilogx(V,J);
 

Dieses Beispiel liefert eine Gerade als Plot. Ich möchte nun aber auf der x-Achse mit V^(1/4) und auf der y-Achse mit ln(J) skalieren.

Ich hoffe, es ist nun etwas klarer...
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.11.2011, 18:53     Titel:
  Antworten mit Zitat      
Hallo Gast,

Bitte verwende den gleichen Namen. Ansonsten ist es nicht zu unterscheiden, ob Du antwortest oder Deine Frage umformulierst.

Nun habe ich auch den Unterschied zwischen "ln(J)" und "In(J)" gesehen. "ln" heißt in Matlab "log".

Die Frage verstehe ich immer noch nicht. Was genau heißt "die Achse skalieren". Möchtest Du die Werte skalieren?

Dies ergibt schon mal eine Gerade:
Code:
V = 0:.1:10;
V = V.^(1/4);
J = log(V);
figure;
% plot(V,J);
semilogx(V, J);


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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.11.2011, 11:48     Titel:
  Antworten mit Zitat      
Sorry, dass ich beim letzten Post meinen Namen vergessen hab.
Also ich hab inzwischen eine Möglichkeit gefunden. Das Ausgangsproblem war, dass ich eine Kennlinie hab, die ungefähr folgende Proportionalität aufweisen sollte:
Code:
J ~ exp(V^(1/4))

Um das zu zeigen, wollte ich das plotten, so dass man eine Gerade sieht. Ich hatte mich gefragt, wie ich das mache.

Ich habe jetzt folgendes gemacht:
Code:

V = 0:.1:60;
J = exp(V.^(1/4));
J = (log(J)).^4;
plot(V,J);
 


Das ergibt eine Gerade, was ja auch mathematisch Sinn macht. Manchmal sollte man sich erstmal mit der Mathematik beschäftigen, bevor man nach einer Lösung in MATLAB sucht Very Happy
Aber vielen Dank, dass du dich meines Problems angenommen hast Jan! Smile
 
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.