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.

ThingSpeak - przykłady

 

ThingSpeak - przykłady

Do korzystania z ThingSpeak potrzebne jest nam źródło danych, stałe połączenie z internetem oraz odrobina cierpliwości do czytania dokumentacji. ThingSpeak współpracuje z przeróżnymi systemami i siłą rzeczy nie istnieje uniwersalna formuła, która pozwoliłaby na natychmiastową konfigurację systemu w każdym przypadku. Na szczęście czytanie dokumentacji w przypadku ThingSpeak nie sprawia kłopotu, a dużym ułatwieniem na start są liczne przykłady.

Czytaj dalej ThingSpeak - przykłady

Dokładność numeryczna

Poniższy wpis autorstwa pana Grzegorza Knora otrzymał wyróżnienie w naszym czerwcowym konkursie

Wstęp

Poniższy wpis bazuje na wątku dokładność numeryczna z polskiego forum matlab.pl.
Otóż w 2009 roku zetknąłem sie z problemem, który może być zilustrowany za pomocą następującego pseudokodu:

Dla każdego k ze zbioru [0,1, 0,2, 0,3,... 5]

Jeśli zaokrąglona wartość k jest równa k

Wydrukuj k

Czytaj dalej Dokładność numeryczna

MATLAB - Zliczanie twarzy ze zdjęcia tłumu

Poniższy wpis pana Łukasza Wyporka zapewnił autorowi pierwsze miejsce w naszym czerwcowym konkursie

MATLAB - Zliczanie twarzy ze zdjęcia tłumu

29 kwietnia 2015 r. na Rynku w Krakowie miał miejsce wiec wyborczy Janusza Korwin-Mikkego. Byłem bardzo ciekawy ile osób przyszło na spotkanie - niestety - liczyć głów na zdjęciu mi się nie chciało. Postanowiłem więc wykorzystać do tego celu środowisko MATLAB pisząc krótki program zliczający głowy na zdjęciu za mnie.

Całość zajęła (uwaga!) 9 linii kodu. I to jest właśnie fajne w bibliotekach dołączonych do MATLABa - wystarczy z nich skorzystać, a cała „brudna” robota wykonywana jest za nas.

% Create a cascade detector object.
faceDetector = vision.CascadeObjectDetector();
faceDetector.MinSize = [20 22];
faceDetector.MergeThreshold = 3;
I = imread('.\zdjecie_tlumu.jpg');
bboxes = step(faceDetector, I);
IFaces = insertObjectAnnotation(I, 'rectangle', bboxes, 'Twarz', 'LineWidth', 10);
count = size(bboxes)
figure, imshow(IFaces), title(['Ilość wykrytych twarzy: pomiędzy ' int2str(count(1)*1.2) ' a ' int2str(count(1)*1.8) ]);
Rysunek 1 Program w środowisku Matlab
Rysunek 1 Program w środowisku Matlab

Czytaj dalej MATLAB - Zliczanie twarzy ze zdjęcia tłumu

Dane z tabel WWW - regular expression

Dane z tabel WWW

Jeśli ktoś publikuje jakieś dane w internecie, to robi to zazwyczaj w taki sposób, by można się było z tymi danymi łatwo zapoznać. Jeśli danych jest dużo, to dobrym zwyczajem jest, poza umieszczeniem ich w tabeli html, udostępnienie pliku xls, csv, czy choćby txt. Dzięki temu użytkownik będzie miał możliwość łatwego pobrania danych i ich dalszej analizy. Gdy jednak gotowy plik z danymi nie istnieje, nie wszystko stracone. Są sposoby, by dość łatwo skopiować dane ze strony www bezpośrednio w środowisku MATLAB. Pomagają w tym wyrażenie regularne.
Czytaj dalej Dane z tabel WWW - regular expression

Konkurs!

Konkurs

Jeżeli MATLAB skutecznie pomaga Ci w pracy, na studiach lub w realizacji Twojego hobby, weź udział w naszym KONKURSIE na ciekawy wpis blogowy i podziel się swoim doświadczeniem!

Tematem wpisu może być opis:

  • nietypowego wykorzystania oprogramowania,
  • projektu wykonanego w środowisku MATLAB&Simulink,
  • zastosowania ww. środowiska w wybranej dziedzinie,
  • najbardziej przydatnych dla Ciebie funkcjonalności.

Najciekawsze wpisy opublikujemy na MATLABlogu, zaś zwycięzcę nagrodzimy plecakiem z logo firmy MathWorks!

Na zgłoszenia czekamy do 31 lipca pod adresem konkurs@ont.com.pl 🙂

Nadesłanie pracy konkursowej jest równoznaczne z akceptacją regulaminu konkursu i wyrażeniem zgody na przetwarzanie danych osobowych przez firmę ONT.

Regulamin konkursu:
http://www.ont.com.pl/…/Regulamin-konkursu_Wpis-MATLABlog.p…

 

GUIDE - zapisywanie wyników

MATLAB GUIDE

MATLAB GUIDE prawdopodobnie powoli zacznie odchodzić na emeryturę, jednak póki co jest jeszcze popularnym narzędziem. GUIDE jest intuicyjny w użyciu, jednak od czasu do czasu pojawiają się problemy z osiągnięciem przez użytkownika zamierzonego efektu. Dziś o dosyć częstym problemie – jak zmusić narzędzie do zapisania wyniku pracy w formie matlabowej zmiennej. W czym rzecz? Programy tworzone z pomocą GUIDE nie muszą stanowić zamkniętego, gotowego rozwiązania jakiegoś problemu. Zazwyczaj są jedynie pomocą na drodze do osiągnięcia końcowego wyniku. Często zdarza się, że chcemy przetworzyć jakieś dane i pośredni wynik zamierzamy poddać dalszej analizie w MATLABie, a tutaj GUIDE nie chce od razu współpracować. Poniżej program, który przemnaża dane wejściowe przez dwa. Czytaj dalej GUIDE - zapisywanie wyników

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