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: 258
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 34068195
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
(Scilab, Octave, ...) zmiana funkcji improfile  (23 Styczenia 2017, Pon 1:02 pm)
Zadanie : Obracanie obrazu  (23 Styczenia 2017, Pon 11:19 am)
Zadanie : Obracanie obrazu  (23 Styczenia 2017, Pon 11:18 am)
Zapis do pliku wektora po DCT obrazu  (22 Styczenia 2017, Nie 11:45 pm)
Zlece prosty projekt w Matlab  (22 Styczenia 2017, Nie 3:52 pm)
Wprowadzanie wlasnej daty  (22 Styczenia 2017, Nie 3:32 pm)
Zadanie  (22 Styczenia 2017, Nie 11:37 am)
Odwracanie macierzy, pomocy  (20 Styczenia 2017, Pią 9:20 pm)
[Matlab] odwracanie macierzy  (20 Styczenia 2017, Pią 9:17 pm)
Zamiana zmiennych globalnych na zmienne lokalne  (20 Styczenia 2017, Pią 4:57 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