Strona 1 z 1

[Matlab] Wykres sinusa

: 18 mar 2013, o 19:44
autor: Kondrus
Cześć,

Musze wykonać zadanie które polega na stworzeniu wykresu sinusa na przedziale od 0 do 8pi. Liczba elementów na osi "X" ma wynosić 10000. Kolejnym krokiem jest stopniowe zmniejszanie liczby elementów w celu uzyskania "wieloboku" zamiast "ładnego" sinusa.

Wymyśliłem następujący kod:
a=[1:pi/10000:8*pi]; //zakres
y=sin(a); //sinus
i=[1:4]; //co czwarty element (76817 to pi/1000 * 8)
n=y(i);
plot(n) //wykres


Poniżej wykres dla co 4 elementu z 76817


Poniżej wykres dla co 4000 elementu z 76817


Wszystko by się zgadzało... Jednak proszę spojrzeć na oś X. Zakres sinusa jest inny. Wydaje mi się że te dwa powyższe wykresy nie są sobie równe. A ideą tych dwóch wykresów jest ukazania przejścia z stanu analogowego na stan cyfrowy... Czy może ktoś pomóc?

[Matlab] Wykres sinusa

: 18 mar 2013, o 20:06
autor: pyzol
Powiedz mi dlaczego zaczynasz od 1, a nie od 0?
Jeśli iksów ma być 10000, to raczej powinieneś mieć: 0:8*pi/10000:8*pi.
Zobacz też co to linspace
help linspace o ile dobrze pamiętam. Wydaje mi się, że będzie wygodniejsze.-- 18 mar 2013, o 20:08 --Jeszcze jedno nie plot(n), tylko plot(a,y).

[Matlab] Wykres sinusa

: 18 mar 2013, o 20:40
autor: Kondrus
Próbowałem:

Kod: Zaznacz cały

a=linspace(1,8*pi,76817);
y=sin(a);
i=[1:3900:76817];
n=y(i);
plot(n)
Wynik taki sam jak powyżej, ilość iksów zmienia się...-- 18 mar 2013, o 21:51 --

Kod: Zaznacz cały

a=linspace(1,8*pi,20);
y=sin(a);
plot(a,y)

Poprawnie, wystarczy tylko zmieniać liczbę N elementów na danym zakresie przy użyciu linspace.
Jeden minut tego wszystkiego iż zmniejszanie liczby elementów jest nie liniowe. Proszę zobaczyć dla n=10...

[Matlab] Wykres sinusa

: 18 mar 2013, o 22:35
autor: pyzol
Nie zobaczę, bo nie mam matlaba.