[Matlab] Modyfikacja legendy

olkaaa
Użytkownik
Użytkownik
Posty: 111
Rejestracja: 3 lip 2015, o 21:07
Płeć: Kobieta
Lokalizacja: Polska
Podziękował: 28 razy
Pomógł: 1 raz

[Matlab] Modyfikacja legendy

Post autor: olkaaa »

Hej!
Mam problem wydawałoby się bardzo prosty, ale niestety dotychczas nie udało mi się znaleźć dla niego rozwiązania.
Rysuję funkcje zmienną przedziałami. Tzn. przykładowo mam trzy przedziały
\(\displaystyle{ 0<x_1 \le 100 }\)
\(\displaystyle{ 100<x_2 \le 300 }\)
\(\displaystyle{ 300<x_3 \le 450 }\)
i wzór funkcji w każdym przedziale jest inny. Chcę na jednym wykresie narysować przebieg funkcji dla parametrów max i parametrów min, w związku z tym mój kod wygląda następująco:

Kod: Zaznacz cały

         plot(x1_max, y1_max, 'r', x2_max, y2_max, 'r', x3_max, y3_max, 'r', 'LineWidth',3);
         hold on
         plot(x1_min, y1_min, 'b', x2_min, y2_min, 'b', x3_min, y3_min, 'b', 'LineWidth',3);
legend('wariant dla parametrow max', 'wariant dla parametrow min');


Niestety legenda w tej sytuacji traktuje każdy "igrek" jako osobną funkcję, czyli musiałabym albo każdy przebieg podpisywać potrójnie, albo nie wiem co. Czy istnieje jakiś sposób by legenda składała się z dwóch tylko elementów?

Mam nadzieję, że jasno opisałam swój problem, bardzo proszę o pomoc. Niestety nie jestem zbyt biegła w matlabie i długo już męczę się z tym kłopotem :/
Ostatnio zmieniony 15 lip 2020, o 20:44 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
piotrjawor
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 30 cze 2015, o 21:36
Płeć: Mężczyzna
Lokalizacja: mazowieckie
Pomógł: 3 razy

Re: [Matlab] Modyfikacja legendy

Post autor: piotrjawor »

Nie możesz po prostu scalić wektorów? Chodzi mi o coś takiego:

Kod: Zaznacz cały

plot([x1_max x2_max x3_max], [y1_max y2_max y3_max], 'r', 'LineWidth',3);
hold on;
plot([x1_min x2_min x3_min], [y1_min y2_min y3_min], 'b', 'LineWidth',3);
legend('wariant dla parametrow max', 'wariant dla parametrow min');
Ewentualnie, jeżeli są to wektory pionowe to trzeba je rozdzielić średnikami.
olkaaa
Użytkownik
Użytkownik
Posty: 111
Rejestracja: 3 lip 2015, o 21:07
Płeć: Kobieta
Lokalizacja: Polska
Podziękował: 28 razy
Pomógł: 1 raz

Re: [Matlab] Modyfikacja legendy

Post autor: olkaaa »

Ojejku, jakie to proste :D BARDZO dziękuję!
Awatar użytkownika
Janusz Tracz
Użytkownik
Użytkownik
Posty: 4065
Rejestracja: 13 sie 2016, o 15:01
Płeć: Mężczyzna
Lokalizacja: hrubielowo
Podziękował: 80 razy
Pomógł: 1392 razy

Re: [Matlab] Modyfikacja legendy

Post autor: Janusz Tracz »

Zobacz na poniższe sklejenie dziedziny:

Kod: Zaznacz cały

X1=[1:0.1:10];      %dziedzina pierwszego kawałka
Y1=X1.^2;           %wzór określający funkcję na pierwszym kawałku 
X2=[10.1:0.1:20];   %dziedzina kolejnego kawałka
Y2=-X2.^2+100;      %wzór na kolejnym kawałku 
X=[X1, X2];         %sklejenie dziedziny w całość  
Y=[Y1, Y2];         %sklejenie wartości funkcji w całość 
plot(X,Y)
legend('cała funkcja dana kwawałkami');
w analogiczny sposób możesz rozwiązać swój problem.
ODPOWIEDZ