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

stairs Plot mit gleichen Abständen zw x-Werten?

 

de_eska
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 16.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.10.2019, 14:09     Titel: stairs Plot mit gleichen Abständen zw x-Werten?
  Antworten mit Zitat      
Hallo liebe Community.

Als letztes Mittel versuche ich es mal hier. Ich hab den Verdacht dass das Problem schnell behoben sein könnte. Jedoch klappt das bei mir mit den ganzen google Suchen nicht.

Folgendes Problem: Im unten stehenden Code habe ich einen Plot (mit 3 Graphen, Plot A, Plot B und die Differenz davon). Da ich mit dem Schalldruckpegel und Frequenzen arbeite, sind die Werte alle etw verzerrt (Logarithmisch blabla). Links sind die Werte gestaucht und rechts schön weit auseinander.
Mit dem Befehl xticks habe ich schon mal geschafft, dass er mir nur die x-Achse mit den Werten aus dem Datensatz beschriftet. Da ich ein Stufenplot (stairs) will, hätte ich gern die gleichen Abstände zw jedem x-Wert. Die y-Achse ist hier unwichtig. Hier soll ein Terzband dargestellt werden.

Was zeigen mir dir google Ergebnisse:
Da werden Sachen versucht mit xlim und xtick. Auch mit dem Befehl rand wird gespielt. Verschachtelungen der Werte werden angewandt. Ich hab verschiedenes versucht. Führt bei mir nicht zum gewünschten Ergebnis Sad

Über Anreize/Ideen jeglicher Art wäre ich sehr dankbar!

Grüße
Sebastian

Code:

%SimMa0-125 - SimMa0-103 MS1
dataset = xlsread('LpFrequenzTerzband.xlsx','0-103','A10:L31');
x= dataset(:,1);
y= dataset(:,2);
stairs(x,y);
hold on

%obere SimMa
dataset = xlsread('LpFrequenzTerzband.xlsx','0-31497max','A10:L31');
x= dataset(:,1);
y= dataset(:,2);
stairs(x,y);
hold on

%DIFF
dataset = xlsread('LpFrequenzTerzband.xlsx','MSueberX','A9:BZ30');
x= dataset(:,1);
y= dataset(:,2);
stairs(x,y);
hold off

xticks([10;12.5;16;20;25;31.5;40;50;63;80;100;125;160;200;250;315;400;500;630;800;1000;1250;1600;2000;2500;3150;4000;5000;6300;8000;10000;12500]);
grid
legend('SimMa0-103','SimMa0-125','\Delta')
xlabel('f in Hz','FontSize',12,'FontWeight','bold')
ylabel('L_{P} in dB','FontSize',12,'FontWeight','bold')
title('MS1')
 
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

versuch's mal mit categorical, z.B.
Code:
stairs(categorical([1; 10; 100; 1000]), 1.3:4.3)


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
 
de_eska
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 16.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2019, 02:01     Titel:
  Antworten mit Zitat      
Hi, danke für die Antwort. Hab das auch mit Hilfe der Matlab Beschreibung (zu categorical) leider nicht hinbekommen. Mein Problem hab ich dennoch gelöst.

Code:

%SimMa0-125 - SimMa0-103 MS1
dataset = xlsread('LpFrequenzTerzband.xlsx','0-103','A10:L31');
x= dataset(:,1);
y= dataset(:,2);
x_lim = [79.1 11001];
x_tick = x';
y_lim = [-20 70];
y_tick = min(y_lim):10:max(y_lim);
stairs(x,y,'k');
set(gca,'XScale','log');
hold on

%obere SimMa
dataset = xlsread('LpFrequenzTerzband.xlsx','0-125max','A10:L31');
x= dataset(:,1);
y= dataset(:,2);
x_lim = [79.1 11001];
x_tick = x';  
y_lim = [-20 70];
y_tick = min(y_lim):10:max(y_lim);
stairs(x, y, 'r');
hold on

%DIFF column+1
dataset = xlsread('LpFrequenzTerzband.xlsx','MSueberX','A9:BZ30');
x= dataset(:,1);
y= dataset(:,2);
x_lim = [79.1 11001];
x_tick = x';
y_lim = [-20 70];
y_tick = min(y_lim):10:max(y_lim);
stairs(x, y,'b');
hold off



% Axis Ticks
set(gca, 'XLim', x_lim, 'YLim', y_lim, 'XTick', x_tick, 'YTick', y_tick, 'XTickLabelRotation', 90,'XMinorTick', 'off');
ticks = get(gca, 'XTick');
set(gca, 'XTickLabel', num2str(ticks', '%.1f'));
ticks = get(gca, 'YTick');
set(gca, 'YTickLabel', num2str(ticks', '%.1f'));
% xticks([80;100;125;160;200;250;315;400;500;630;800;1000;1250;1600;2000;2500;3150;4000;5000;6300;8000;10000;12500]);

grid
legend('SimMa0-103','SimMa0-125','\Delta')
xlabel('f in Hz','FontSize',12,'FontWeight','bold')
ylabel('L_{P} in dB','FontSize',12,'FontWeight','bold')
title('MS1')
 
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 - 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.