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

Aktualnie online:




Najnowsze posty na forum:
Losowanie z dowolnego rozkładu  (26 Marca 2017, Nie 7:45 pm)
wycinanie fragmentu wykresu przy pomocy pętli  (25 Marca 2017, Sob 7:11 pm)
Pomoc w napisaniu funkcji - operacje na macierzy  (25 Marca 2017, Sob 12:40 pm)
Porównianie wykresów w środowisku matlab i simulink  (24 Marca 2017, Pią 2:14 am)
Komunikat Struct contents reference from a non-struct array  (23 Marca 2017, Czw 9:06 pm)
Problem z zadaniem  (23 Marca 2017, Czw 6:53 pm)
Styczna do odpowiedzi skokowej  (22 Marca 2017, Sro 11:43 am)
Zadanie z Scilab. (Wykonanie skryptu.)  (21 Marca 2017, Wto 5:06 pm)
metody rozwiazywania rownan liniowych  (20 Marca 2017, Pon 10:19 pm)
Metoda Latin Hypercube Sampling  (19 Marca 2017, Nie 7:31 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