Archiwum kategorii: MATLAB

Informacje o MATLABie, jego narzędziach, a także o dobrych praktykach programistycznych związanych ze środowiskiem. Nietypowe rozwiązania i ciekawostki.

Uprzejmator - aktualizacja

Rozpoznawanie płci mówcy na podstawie dźwięku głosu

Projekt uprzejmator, który zrealizowałem kilka miesięcy temu, dotyczył małego elektronicznego awatara, którego przeznaczeniem było uprzejme wysłuchiwanie kierowanych do właściciela słów (w jego zastępstwie). Uprzejmator potrafi skierować głowę w stronę źródła dźwięku i podtrzymać „konwersację” losową, lecz uprzejmą uwagą. W zasadzie działa to dobrze. Pomyślałem jednak, że może warto by było rozwinąć nieco projekt – uwagi kierowane do rozmówcy mogą być nieco bardziej zróżnicowane, na przykład ze względu na płeć. Nie chodzi tu o żadną planowaną dyskryminację, po prostu wydaje mi się, że wypowiedzenie do mężczyzny słów „świetna fryzura” może mieć inne efekty niż w przypadku skierowania tych samych słów do kobiety. Jeśli kogoś to nie przekonuje, to jest jeszcze jeden argument – szacunek dla języka polskiego. Zasady deklinacji wymuszają na nas stosowanie odmiennych końcówek wyrazów w zdaniach kierowanych do mężczyzn i kobiet. Cokolwiek by nie było motywacją, problem jest jeden: jak sprawić, by maszyna rozpoznała płeć rozmówcy.
Czytaj dalej Uprzejmator - aktualizacja

Meshgrid

Meshgrid

Meshgrid - sympatyczna funkcja w MATLABie, której działanie w pierwszym momencie może wydawać się nieco tajemnicze. W tej chwili mogę sobie wyobrazić zagubionego użytkownika programu MATLAB, który zaplątał się podczas czytania dokumentacji i gdzieś tam przez przypadek trafił na opis funkcji meshgrid. Czyta, myśli sobie "fajne, ale po co". Zaintrygowany siada przed komputerem, wpisuje w wyszukiwarkę "Meshgrid MATLAB po co" i trafia na tę właśnie stronę. Niemożliwe? Powiedzmy, że mało prawdopodobne. Dla mnie ważne, że jeśli się ktoś taki trafi, to mogę mu pomóc. W zasadzie jeśli się ktoś taki trafi, to mogłem mu pomóc, bo wpis już przecież jest gotowy.

Czytaj dalej Meshgrid

Przyspieszanie obliczeń w MATLABie

Przyspieszanie obliczeń w MATLABie

Przyspieszanie wykonywania algorytmów w środowisku MATLAB to w zasadzie temat rzeka. Drogi do obranego celu są różne. Parallel Computing Toolbox umożliwia zastąpienie pętli for przez parfor, zrównoleglającej obliczenia na wszystkich dostępnych w komputerze rdzeniach obliczeniowych, a także pozwala na wykorzystanie w obliczeniach kart graficznych firmy nVidia. Przy naprawdę zasobożernych zadaniach MATLAB Distributed Computing Server daje możliwość zastosowania do obliczeń zewnętrznego klastra obliczeniowego. Można też wykorzystać MATLAB Coder do wygenerowania kodu C z części naszych algorytmów, co również powinno przełożyć się na prędkość ich działania. Zanim jednak sięgniemy po te zaawansowane i nierzadko kosztowne narzędzia, warto zacząć od przeglądnięcia m-kodu, którym dysponujemy. Nierzadko skrócenie czasu wykonania algorytmu można osiągnąć modyfikując nieznacznie m-kod.


Czytaj dalej Przyspieszanie obliczeń w MATLABie

MATLAB Mobile

MATLAB Mobile -  moc MATLABa na twojej komórce.

Na komórce lub dowolnym innym urządzeniu działającym pod kontrolą systemu Android lub iOS. Przede wszystkim na wstępie trzeba wyjaśnić jedną kwestię - Matlab Mobile nie jest wersją MATLABa na komórki. To aplikacja, która stanowi interfejs do programu zainstalowanego na komputerze lub do jego chmurowej wersji.  Innymi słowy, MATLAB Mobile umożliwia wydawanie poleceń i odbieranie wyników obliczeń bezpośrednio z telefonu komórkowego czy tabletu, wymaga jednak sparowania z MATLABem na komputerze lub z wersją on-line MATLABa.

Czytaj dalej MATLAB Mobile

MATLAB IDE – kilka dobrze schowanych funkcjonalności

MATLAB IDE – kilka dobrze schowanych funkcjonalności

Kilka lat temu MATLAB przeszedł gruntowne zmiany wyglądu. Tradycyjny interfejs zastąpiono „wstążką”, co na pewno unowocześniło wygląd aplikacji i w znacznym stopniu usprawniło korzystanie z niej. Zmiana nie wszystkim przypadła do gustu. Pojawił się klasyczny zarzut, że kiedyś to można było znaleźć wszystko w ustrukturyzowanym menu, a teraz to trzeba szukać ustawień i narzędzi po kątach. Cóż, coś w tym jest.
Czytaj dalej MATLAB IDE – kilka dobrze schowanych funkcjonalności

Równania różniczkowe wyższych rzędów

Równania różniczkowe wyższych rzędów

Wskazówki dotyczące rozwiązywania równań różniczkowych przedstawione w poprzednim wpisie w pełni wystarczą do rozwiązywania problemów opisanych równaniem różniczkowym pierwszego rzędu. W praktyce oznacza to, że są one przydatne w zasadzie... nigdy 🙂 Nie są bezużyteczne, ale na pewno są niewystarczające do rozwiązywania większości problemów obliczeniowych. Jeśli w rzeczywistości stykamy się z potrzebą rozwiązania równania różniczkowego, to jest to zazwyczaj równanie wyższego rzędu i wtedy potrzeba czegoś jeszcze. Weźmy dla przykładu problem swobodnie odbijającej się od podłoża sprężystej piłki. Czytaj dalej Równania różniczkowe wyższych rzędów

Rok zerowy

Rok zerowy

Czy zastanawialiście się kiedyś nad problemem roku zerowego? Czy był w ogóle taki rok? Konkretnie, czy Jezus narodził się w pierwszym roku naszej ery czy może wcześniej? W zasadzie w internecie można znaleźć sporo dywagacji na ten temat, ale opinia jest raczej zgodna - nie ma czegoś takiego jak rok zerowy.  No dobrze, ale jeśli założymy, że Jezus urodził się 25 grudnia roku pierwszego (choć podobno był to raczej wrzesień), to pierwsze urodziny obchodził w drugim roku naszej ery, prawda? No jest problem. Na szczęście mamy XXI wiek i sprawdzone narzędzia do rozwiązywania problemów obliczeniowych. Dlaczego by tak nie spytać o istnienie roku zerowego naszego ulubionego programu? Czytaj dalej Rok zerowy