W zasadzie chciałem zapytać dwie rzeczy:Negatywne zer w Matlab
- Dlaczego tak się dzieje? (ujemne zero w Matlab)
- Kiedy to się dzieje?
Wymyśliłem this. Octave ma pewne podobieństwa z Matlabem, więc przydatność tej funkcji jest oczywista, ale jedną z rzeczy, które powiedzieli, jest to, że nie pojawia się ona w domyślnym pliku wyjściowym. i właśnie to rozwiązałem. Może więc nowy wgląd w to?
Na drugie pytanie, w odpowiedzi na pytanie, do którego się odniosłem, po prostu powiedzieli, że może się to zdarzyć w niektórych obliczeniach, a w poniższym wyliczeniu, które właśnie zrobiłem, nie wydaje się konieczne używanie (lub uzyskiwanie) to ujemne zero.
Kod gdzie natknąłem to:
xcorr([1 0 1 1], [0 1 1 0 0])
gdzie jest wyjście:
-0.0000 -0.0000 1.0000 1.0000 1.0000 2.0000 1.0000 0.0000 0.0000
xcorr jest rzeczywiście krzyż funkcja korelacji, który wykonuje tylko kilka prostych czynności jak sumowanie i mnożenia , gdzie dokładnie można znaleźć szczegóły funkcji here. W każdym razie, nic takiego „skomplikowanych cięć gałęzi i przekształceń płaszczyzny zespolonej”
Thanks
Dzięki za odpowiedź. Jest tak, jak powiedziałeś, nie zero, ale bardzo mała liczba. Ale dlaczego tak się dzieje? Ponieważ dokumentacja Matlab (i oczywiście formuła tej funkcji) jest po prostu sumą multiplikacji. – lazary
Według wzoru masz rację. Jednak implementacja MATLAB dla xcorr jest tylko przybliżeniem tej formuły. Jak napisano w oficjalnej dokumentacji Matlaba: "xcorr ** szacuje ** sekwencję korelacji krzyżowej". Dlatego ostateczny wynik nie jest w 100% dokładny. – drorco