Wpis z mikrobloga

Mircy z #matlab i #programowanie staram się w matlabie zrobić macierz której kolumny będą wynikiem pewnego tam równania. Zrobiłem sobie pętlę for i mnoży wszystko pięknie tylko, że pierwszą kolumnę z 8. Zupełnie jestem zielony z programowania i nie wiem, co robię źle. Kod daję poniżej, pomoże ktoś? : )
clc
clear
x=(0:0.001:2.*pi);
y=sin(x);
l=3; 'przetwornik';
n=2.^l; 'ilość przedziałów';
q1=size(x); 'ilość punktów na osi x';
q2=q1(:,2);
q=fix(q2/n);
Q=zeros(q,n); 'macierz złożona z n kolumn i q wierszy';
for i=1:n
E=Q(:,i)+sin(((((i-1)/n)*2.*pi)+(((i)/n)*2.*pi))/2);
end
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

bierze ci tylko tą 8 kolumnę bo cały czas nadpisuje dane , czyli wyniki pierwszej nadpisane przez drugą, itd aż do ósmej.
Nie wiem czy oto ci chodzi ale wyniki możesz zapisać sobie też też jako E(:,i)=... i wtedy chyba ci tego nie nadpisze.
Daj znać czy pomogło bo nie jestem pewny, daaawno nic w matlabie nie robiłem.
  • Odpowiedz
@denevaq: @CortesHernan: generalnie zadaniem jest kwantyzacja przebiegu funkcji sinusoidalnej, jest do tego funkcja ale mamy to zrobić na obkoło. Nigdy nie miałem programowania i robię z poradników bo zajęcia mamy z gościem który się chyba za bardzo nie odnajduje w nauczaniu innych. Po zmianie na E(:,i) działa tak jak chciałem, dzięki wielkie : ).
Generalnie program ma działać tak:
Mamy kwantyzować przetwornikiem n bitowym. w tym wypadku 3.
  • Odpowiedz