H ist die Höhe und reicht von Null bis 10 km. Jetzt möchte ich, dass der Bereich zwischen 0 und 3 km, zB. rot eingefärbt ist. Ist das in Matlab irgendwie möglich, einen Teil der Kurve anderes einzufärben?
figure % abschnittsweise für jeden zustand plotten. for i = 1:length(wechsel)-1
idx = wechsel(i):wechsel(i+1);
[AX,H1,H2] = plotyy(x,K,x(idx),H(idx));
hold on
set(H2,'color','r') end
Wenn ich den Code auf plotyy anwende, zeigt Matlab zwar keine Fehlermeldung, greift aber auch nicht auf die Schleife zu. Vielleicht kannst du mir nochmal weiterhelfen
1) Die Farbmatrix 'farben' muss schon eine nx3-Matrix sein, das ist bei dir gerade ein 1x6-Vektor.
2) Musst du die Farbmatrix auch benutzen, bei dir wird wohl alles einfach nur rot.
3) Bin ich mit plotyy auch nicht so bewandert. Da werden mit dieser Methode wohl so einige Achsen produziert, damit die alle die gleichen ylim-Werte haben (das ist sonst versetzt), muss man ein mal alles plotten, die ylim Werte auslesen und dann immer setzen.
Gibt sichere bessere Lösungen, aber so sollte da gehen.
4) Bei dem Vektor wechsel muss auch noch das letzte Element von den zu plottenden Werten ans Ende angefügt werden, das war schon in meinem vorigen Beispiel falsch.
5) Bei der Variable zustand müssen Einsen oder Zweien stehen (spricht dann die Zeile der Farbmatrix an). Da hast du das +1 vergessen.
So sollte es gehen:
Code:
x = linspace(0,4*pi,1000);
H = sin(x)*1000+2000;
K = x.^2;
F = 2500;
zustand = (H > F)+1;
farben = [1,0,0 0,1,0];
wechsel = [find([1,diff(zustand)]~=0),length(zustand)];
figure [AX,H1,H2] = plotyy(x,K,x,H);
ylimvals = get(AX(2),'Ylim');
hold on
% abschnittsweise für jeden zustand plotten. for i = 1:length(wechsel)-1
idx = wechsel(i):wechsel(i+1);
[AX,~,H2] = plotyy(x,K,x(idx),H(idx));
set(H2,'color',farben(zustand(wechsel(i)),:)) set(AX(2),'ylim',ylimvals) end
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
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.