Zaloguj się
Blog na Matlablog
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: 318
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 38738624
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
impulsy prostokątne i filtry  (22 Października 2017, Nie 10:02 am)
Dla Matlaba 1 jest róşne od 1? Dziwny problem.  (15 Października 2017, Nie 12:38 am)
Wyświetlanie duĹźej ilości punktĂłw  (11 Października 2017, Sro 9:32 pm)
macierz z wektorem na przekątnej  (11 Października 2017, Sro 9:05 pm)
Program antypalgaitowy  (9 Października 2017, Pon 2:18 pm)
Wycinanie twarzy  (9 Października 2017, Pon 10:25 am)
111  (6 Października 2017, Pią 12:57 pm)
Matlab/C# tester - Wrocław  (4 Października 2017, Sro 8:41 am)
Filtr FIR problem  (30 Września 2017, Sob 3:16 pm)
konwolucyjne sieci neuronowe  (29 Września 2017, Pią 6:55 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