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

Contour Achsen skalieren

 

warawa
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 82
Anmeldedatum: 15.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2019, 12:29     Titel: Contour Achsen skalieren
  Antworten mit Zitat      
Hallo ich habe ein Problem ich habe Werte zweier Excel Datei eingelesen und muss diese vergleichen.
Auf der y-Achse ist das Moment und auf der x-Achse Umdrehungen/Minute angegeben.
Nun habe ich mit dem Befehl :

Code:

steps = [ 0.7, 0.8, 0.88, 0.9, 0.92 ];
[C,h1] = contour(Wirkungsgrad_CaseB,steps ,'ShowText','on', 'LineWidth', 2, 'LabelSpacing', 500, 'Color', 'black');
clabel(C,h1,'FontSize',20,'Color','black');
 


die Dateien geplottet nur ist die Beschriftung der Achsen Falsch.
ich hab in y Richtung eigentlich 55 - (-55) und in x Richtung [0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000,4500, 5000, 5005, 6000, 7000, 8000, 9000, 10000] in einer Datei und x Richtung [0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 6000, 7000, 8000, 9000, 10000] in der anderen
Doch leider zeigt es mir im Plot nicht die Werte an sonder y achse ist von 0 - 112 und die x achse ist von 0 - 17 bzw 0 - 16.

Die Frage ist wie kann ich die Achsen passend skallieren, so dass der Plot nicht verzerrt wird ( die x-achse fängt mit 500 sprünge an hört mit 1000 er auf) und ich sofort die richtigen Werte ablesen kann.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

ohne Beispieldaten schwer nachzuvollziehen.
Du solltest aber in jedem Fall die Syntax contour(X,Y,Z) verwenden. Die x- und y-Werte können ja nur berücksichtigt werden, wenn du sie angibst.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 82
Anmeldedatum: 15.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.03.2019, 14:51     Titel:
  Antworten mit Zitat      
Ich kann leider die notwendigen Dateien nicht senden aber hier ist mein komplettes skript axes_Kennfeld1 ist Datei 1 eingelesen in einen Wirkungsgrad umgerechnet und geplottet. axes_Kennfeld2 ist Datei 2 umgerechnet und geplottet. und axes_Kennfeld1u2 sind beide übereinander gelegt aber mit dem Problem, dass sie eigentlich nicht die gleiche anzahl an x werten haben und ich mit xticks nur die labels geänder hab

Code:

% --- Executes on button press in pushbutton_Kennfeld1.
function pushbutton_Kennfeld1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton_Kennfeld1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global file_Kennfeld1

[filename, pathname] = uigetfile('*.xlsx');
set(handles.text_auswahl1,'String',filename);
file_Kennfeld1 = fullfile(pathname, filename);


% --- Executes on button press in pushbutton_Kennfeld2.
function pushbutton_Kennfeld2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton_Kennfeld2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global file_Kennfeld2

[filename, pathname] = uigetfile('*.xlsx');
set(handles.text_auswahl2,'String',filename);
file_Kennfeld2 = fullfile(pathname, filename);


% --- Executes on button press in pushbutton_Kennfeld_erstellen.
function pushbutton_Kennfeld_erstellen_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton_Kennfeld_erstellen (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global file_Kennfeld1
global file_Kennfeld2
Exceldatei1 = file_Kennfeld1;
Exceldatei2 = file_Kennfeld2;

%Einlesen der Excel Dateien
Case1 = xlsread( Exceldatei1, 'A7:U120');
Case2 = xlsread( Exceldatei2, 'A7:U120');

cla(handles.axes_Kennfeld1);
cla(handles.axes_Kennfeld2);
cla(handles.axes_Kennfeld1u2);
cla(handles.axes_Delta);

%axes1 Berechnen und Plotten
axes(handles.axes_Kennfeld1);

for x=1:numel(Case1(1,:))
    rpm_Case1(1,x) = Case1(1,x);
end
for y=1:numel(Case1(:,1))
    Moment_Case1(y,1) = Case1(y,1);
end

x_laenge_Case1 = length(rpm_Case1);
y_laenge_Case1 = length(Moment_Case1);

for x=1:x_laenge_Case1
    for y=1:y_laenge_Case1
        Leistung_Case1(y,x) = Moment_Case1(y,1) * rpm_Case1(1,x) * 2 * pi / 60;
    end
end
for x=1:x_laenge_Case1
    for y=1:y_laenge_Case1
        index = y_laenge_Case1 - y + 1;
       %Motorisch
       if (y <= 57)
            Wirkungsgrad_Case1(index,x) = Leistung_Case1(y,x) / (Leistung_Case1(y,x) + Case1(y,x));
       end
       %Generatorisch
       if ( y > 57)
            Wirkungsgrad_Case1(index,x) = (Leistung_Case1(y,x) + Case1(y,x)) / Leistung_Case1(y,x);
       end
    end
end

steps = [ 0.7, 0.8, 0.88, 0.9, 0.92 ];
[C,h1] = contour(Wirkungsgrad_Case1, steps,'ShowText','on', 'LineWidth', 2, 'LabelSpacing', 500, 'Color', 'black');
clabel(C,h1,'FontSize',10,'Color','black');
hold on

yticks(1:5:113)
yticklabels(-55:5:55)
xticks(2:20)
xticklabels([0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5005 6000 7000 8000 9000 1000])
xlim([2 18]);
set(gca, 'FontSize', 10);

%axes2 Berechnen und Plotten
axes(handles.axes_Kennfeld2);

for x=1:numel(Case2(1,:))
    rpm_Case2(1,x) = Case2(1,x);
end
for y=1:numel(Case2(:,1))
    Moment_Case2(y,1) = Case2(y,1);
end

x_laenge_Case2 = length(rpm_Case2);
y_laenge_Case2 = length(Moment_Case2);

for x=1:x_laenge_Case2
    for y=1:y_laenge_Case2
        Leistung_Case2(y,x) = Moment_Case2(y,1) * rpm_Case2(1,x) * 2 * pi / 60;
    end
end
for x=1:x_laenge_Case2
    for y=1:y_laenge_Case2
        index = y_laenge_Case2 - y + 1;
       %Motorisch
       if (y <= 57)
            Wirkungsgrad_Case2(index,x) = Leistung_Case2(y,x) / (Leistung_Case2(y,x) + Case2(y,x));
       end
       %Generatorisch
       if ( y > 57)
            Wirkungsgrad_Case2(index,x) = (Leistung_Case2(y,x) + Case2(y,x)) / Leistung_Case2(y,x);
       end
    end
end

steps = [ 0.7, 0.8, 0.88, 0.9, 0.92 ];
[C,h2] = contour(Wirkungsgrad_Case2, steps,'ShowText','on', 'LineWidth', 2, 'LabelSpacing', 500, 'Color', 'red');
clabel(C,h2,'FontSize',10,'Color','red');
hold on

yticks(1:5:113)
yticklabels(-55:5:55)
xticks(2:20)
xticklabels([0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5005 6000 7000 8000 9000 1000])
xlim([2 18]);
set(gca, 'FontSize', 10);

%axes Vergleich Plotten
axes(handles.axes_Kennfeld1u2);

steps = [ 0.7, 0.8, 0.88, 0.9, 0.92 ];
[C,h1] = contour(Wirkungsgrad_Case1, steps,'ShowText','off', 'LineWidth', 2, 'LabelSpacing', 500, 'Color', 'black');
hold on

steps = [ 0.7, 0.8, 0.88, 0.9, 0.92 ];
[C,h2] = contour(Wirkungsgrad_Case2, steps,'ShowText','off', 'LineWidth', 2, 'LabelSpacing', 500, 'Color', 'red');
hold on

yticks(1:5:113)
yticklabels(-55:5:55)
xticks(2:20)
xticklabels([0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5005 6000 7000 8000 9000 1000])
xlim([2 18]);
set(gca, 'FontSize', 10);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

der Code hilft leider ohne Beispieldaten (es müssen nicht die realen Daten sein) nicht weiter.
Bitte aber vor allem auch den Vorschlag beachten.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 82
Anmeldedatum: 15.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.03.2019, 11:12     Titel:
  Antworten mit Zitat      
Danke für den Tipp jetzt ist es genau so wie ich es wollte Very Happy
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.