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

X-Achse von Plot mit Umrechnung festlegen

 

noob__1980

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2020, 14:55     Titel: X-Achse von Plot mit Umrechnung festlegen
  Antworten mit Zitat      
Hallo zusammen,


ist es möglich die dargestellte Beschriftung der Werte der X-Achse über eine Umrechnung zu definieren?

In meinen Fall verwende ich eine logrithmische Darstellung:
Code:

loglog(1:n,Variable);
 


Die Variable ist als 1-dimensionales Array definiert.

Code:
Variable= zeros(1,c);
 


Jetzt möchte an der x-Achse aber nicht 1, 2, 3, 4, .. stehen haben, sondern 3, 5, 7, 9, ... .

Kann man die dargestellen Werte der x-Achse nochmal über eine Umrechnungsmethode anders anzeigen lassen?

Grüße

PS: Die Umrechnung ist klar.


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.07.2020, 15:13     Titel:
  Antworten mit Zitat      
Hallo,

Code:
xticks
xticklabels


Tendenziell finde ich es aber besser, die Daten zu konvertieren als die Beschriftungen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
noob__1980

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2020, 15:25     Titel:
  Antworten mit Zitat      
Hallo Harald,

Danke erst mal.

Also vielleicht ist mein Weg davor schon falsch.
Durch das Array gehe ich einfach mit einer Schleife.
In jedem n-Schritt wird dann z.B sin(n*Umrechnung) aufgerufen.
Also z.B. nur ungerade X-Werte für die Funktion.

Was meinst Du mit Konvertierung der Daten?

Grüße
Peter
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.07.2020, 15:34     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Durch das Array gehe ich einfach mit einer Schleife.
In jedem n-Schritt wird dann z.B sin(n*Umrechnung) aufgerufen.
Also z.B. nur ungerade X-Werte für die Funktion.

Das ist so nicht nachvollziehbar. Es wäre hilfreich, den Code zu sehen.

Zitat:
Was meinst Du mit Konvertierung der Daten?

Die Daten umrechnen. Also z.B. 2*x + 1 statt x zu plotten.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
noob__1980

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2020, 15:50     Titel:
  Antworten mit Zitat      
Hallo Harald,

anbei der Code
Code:

%Eingabe der Stuetzstellen
us = input('Bitte die Anzahl der ungeraden Stuetzstellen eingeben : ');

%Array zur Zwischenspeicherung mittels zeros(1,c)
c = (us-1)/2; %Ermittelung der Array-Größe
werteFunktion = zeros(1,c);

for n = 1:1:c
   
    %Durch(2*n+1) werden nur ungerade Werte >= 3 bis c] verwendet
    werteFunktion(1,n)= Funktion(0,pi,(2*n+1));

end

%Plot des Log
loglog(1:n,werteFunktion);


Grüße Peter
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.07.2020, 16:37     Titel:
  Antworten mit Zitat      
Hallo,

und was ist bzw. was macht Funktion? Was gibst du bei dem input-Befehl ein?
Idealerweise können andere deinen Code laufen lassen und somit das Problem reproduzieren. Das geht aber nicht, wenn die Hälfte an Informationen fehlt.

Hast du versucht den Vorschlag umzusetzen, z.B. über
Code:
loglog(2*(1:n)+1,werteFunktion);


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
noob__1980

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2020, 17:01     Titel:
  Antworten mit Zitat      
Hallo Harald,

Die Funktion hat drei Parameter wobei die ersten beiden hier egal sind.
(Integrationsgrenze A, Integrationsgrenze B, Stützstellen)

Der Rückgabewert der Funktion ändert sich hier nur in Abhängkeit von den Stützstellen.
Die Stützstellen übergebe ich mit 2*n+1.

Ich möchte den Plot so beschriften, dass die gewählten Stützstellen erscheinen und nicht die Arraystelle n auf der x-Achse.
Also 2*n+1 statt n.

Hoffe es ist verständlich.

Gruß
Peter
 
noob__1980

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2020, 17:44     Titel:
  Antworten mit Zitat      
Hallo Harald,

Danke erst mal.

Meine Lösung ist jetzt schematisch:

Code:
xticks([1,0.5*n, n]);
xticklabels({3,(2*n+1)*0.5, 2*n+1});


Das skaliert ganz gut.

Das war auch genau das was mit:
... Werte der X-Achse über eine Umrechnung zu definieren.
gemeint war.



Grüße
Peter
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.07.2020, 18:13     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich möchte den Plot so beschriften, dass die gewählten Stützstellen erscheinen und nicht die Arraystelle n auf der x-Achse.

Dann solltest du aber eben die gewählten Stützstellen auch als Argument übergeben und nicht 1:n, so wie vorgeschlagen:
Code:
loglog(2*(1:n)+1,werteFunktion);


Die Beschriftung der Achse anpassen ist zwar möglich, aber verhältnismäßig umständlich.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
noob__1980

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2020, 21:09     Titel:
  Antworten mit Zitat      
Hallo Harald,

nochmal eine Verständnisfrage:
mit:
Code:
werden alle Stützstellen von
Code:
werteFunktion
erreicht - oder?

mit:
Code:
werden auch alle Stützellen von
Code:
werteFunktion
erreicht und nur x-Achsenwerte anders beschriftet korrekt?

Das 2* und +1 ist quasi nur symbolisch und genommen wird immer der n-te Arraywert - korrekt?

Grüße
Peter
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.07.2020, 21:53     Titel:
  Antworten mit Zitat      
Hallo,

würde ich so nicht sagen.

Wenn du 1:n reinsteckst (n:1 war wohl ein Schreibfehler?), dann bekommst du Werte für 1:n heraus. Wenn du 2*(1:n)+1 reinsteckst, bekommst du entsprechend Werte für 2*(1:n)+1 heraus.

Was du mit " genommen wird immer der n-te Arraywert" meinst, verstehe ich nicht.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
noob__1980

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2020, 15:16     Titel:
  Antworten mit Zitat      
Hallo Harald,

1) ja n: 1 war ein Schreibfehler.
2) werteFunktion ist ja nur ein Array, in das Werte geschrieben werden. Keine Funktion. loglog nimmt doch nur die Werte vom Array an der Stelle n (z.B Stelle 5 Inhalt 1.34) und plottet diesen Wert - oder macht loglog hier etwas anderes?

Gruß
Peter
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.07.2020, 16:45     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
loglog nimmt doch nur die Werte vom Array an der Stelle n und plottet diesen Wert

Für mich ist die Ausdrucksweise nicht klar und eindeutig. Insbesondere:
1. zu jeder Stelle gibt es nur einen Wert.
2. loglog plottet immer x- und y-Vektoren gegeneinander, jeder Punkt ist ein Paar aus zusammengehörenden x- und y-Werten.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
noob__1980

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2020, 18:18     Titel: Rom
  Antworten mit Zitat      
Hallo Harald,

ist den der Wert im Array an der Stelle n nicht der zugehörge y-Wert?

Grüße
Peter
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.07.2020, 18:20     Titel:
  Antworten mit Zitat      
Hallo,

zum einen eben nur einer, zum anderen die Frage, zu was gehörig. Wenn du 2*n + 1 eingesetzt hast, dann gehört der y-Wert auch zu 2*n + 1 und nicht zu n.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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