Zaloguj się
Blog na Matlab.pl
Forum polskich użytkowników
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Histogram bez użycia f.histogram
Forum MATLAB Strona Główna-> MATLAB
Post Wysłany: 7 Styczenia 2017, Sob 8:31 pm Temat postu: Histogram bez użycia f.histogram Odpowiedz z cytatem
 
AUTOR:
Skipper11
Początki pisania


Dołączył: 17 Paź 2016
Posty: 7


Ogląda profil użytkownika Wyślij prywatną wiadomość
Witam,
Mam następujące zadanie: "Wygenerować 20 próbek sygnału o rozkładzie normalnym,
wartości średniej równej -4.2 i odchyleniu standardowym równym
2.3. Obliczyć i narysować histogram o 10 koszykach (ang. bins)
dla takiej próby (bez wykorzystywania funkcji hist i histogram).
Obliczyć wartość oczekiwaną i odchylenie standardowe z próby.
Na tym samym wykresie narysować funkcję gęstości
prawdopodobieństwa rozkładu normalnego (znormalizować
histogram, aby oba wykresy miały takie same wysokości).
Spróbować zwiększyć liczbę próbek i liczbę koszyków. Co
przypomina otrzymany histogram? Jak zachowuje się obliczona
wartość oczekiwana i odchylenie standardowe? Przydatne funkcje:
bar, normpdf."
Mój kod wygląda w następujący sposób:
Kod:
clc;
clear all;
ts=0.1;
T=2;
t=0:ts:T-ts;
sygnal=randn(1,length(t));
sygnal=sygnal*2.3-4.2; %aby sygnal spelnial zalozenia

  Ux
=mean(sygnal);%wartosc oczekiwana
 
for i=1:length(sygnal)
      
G=(sygnal(i)-Ux).^2;
 
end;
 
G=G/length(sygnal);
 
G=sqrt(G); %odchylenie standardowe
 
  sygnal
=round(sygnal); %zaokraglamy dla liczb calkowitych
 
histArray
=zeros(1,10);  %prealocate
    x
=-12:2:6;  %create bin numbers for plot
 
for n=1:length(sygnal)
          
histArray(1,floor(sygnal(n)/2)+1)=histArray(1,floor(sygnal(n)/2)+1)+1;
        %
every time you meet the particular value
        
%you add 1 into to corresponding bin
  end
  bar
(x,histArray);

I dostaje następujący błąd
Cytat:
Subscript indices must either be real positive integers or logicals.
histArray(1,floor(sygnal(n)/2)+1)=histArray(1,floor(sygnal(n)/2)+1)+1;

Ma ktoś pomysł co robię źle?
Z góry dziękuję za pomoc Wink


 

Post Wysłany: 8 Styczenia 2017, Nie 1:05 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
Jacek Konieczny
Może pisać książki


Dołączył: 31 Mar 2009
Posty: 315
Skąd: Poznań


Ogląda profil użytkownika Wyślij prywatną wiadomość Odwiedź stronę autora
Proszę sprawdzić, ile wynosi wartość wyrazenia : 'length ( sygnal)'. A może zrezygnować w tej pętli i wykorzystać funkcję 'tabulate' do sporządzenia histogramu ( funkcja ta generuje szereg rozdzielczy ).


 

Forum MATLAB Strona Główna-> MATLAB
Wyświetl posty z ostatnich:   

Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wszystkie czasy w strefie CET (Europa)

Skocz do:  

Statystyki forum:



Od dnia 08.06.2006 forum odwiedzano 36596425
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
Przetwarzanie strumienia ASCII odebranego protokołem UDP  (24 Czerwca 2017, Sob 5:55 pm)
zamiennik funkcji smooth  (23 Czerwca 2017, Pią 1:30 pm)
Warto robić szkolenia?  (22 Czerwca 2017, Czw 8:40 am)
Rysowanie sygnałów Sygnały okresowe  (21 Czerwca 2017, Sro 6:52 pm)
Błąd przy inicjowaniu sieci LVQ  (21 Czerwca 2017, Sro 4:39 pm)
Czy wypada być z byłym chłopakiem przyjaciółki?  (21 Czerwca 2017, Sro 2:19 pm)
Artykuły o Matlab  (21 Czerwca 2017, Sro 9:46 am)
Czy wasz człowiek też jest dziwny?  (20 Czerwca 2017, Wto 1:59 pm)
Poprawianie matury to wstyd?  (20 Czerwca 2017, Wto 8:53 am)
Gdzie po szybką pożyczkę?  (17 Czerwca 2017, Sob 12:43 pm)
Twoje prawa:
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać plików na tym forum