#matlab
Cześć, ma może ktoś przykładowy skrypt działający wielowątkowo? Mam funkcję, którą muszę wykonać dla ~700 elementów wektora, symulacja z fminsearch.
Puszczone w pętli działa to powoli, procesor jest użyty w zaledwie 20%, pomyślałem że da się to łatwo zrównoleglić.
Napisałem to za pomocą batch(), ale musi być jakiś bardziej elegancki sposób. Nie dosyć że nie działa to wiele szybciej, to jeszcze tworzy mi dużo drobnych plików na dysku.
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@loveOcelote: Zapisujesz każdy element jako impedancję (twoja częstotliwość omega to 1,5), w liczbach zespolonych, a dalej to już dodawanie i odejmowanie. W sumie matlab jest tu zbędny no ale pewnie chodzi o to żebyś na prostym przykładzie go trochę dotknął przynajmniej z punktu widzenia interfejsu.
  • Odpowiedz
@4833478: @loveOcelote: Z tego co mgliście pamiętam tak. Zresztą szerzej można poczytać pod metodą symboliczną. Dzielimy przez pierwiastek z dwóch przechodząc na wartości skuteczne a częstotliwość pomijamy i podstawimy ją dopiero do rozwiązania zakładając, że się nie zmieni między wyjściem a wejściem.
  • Odpowiedz
Elo matlabowe świry. Weźcie mi pomóżcie, albo nakierujcie na komendy, które muszę użyć, żeby to zrobić. Udało mi się zrobić punkt 1, ale dalej to już mam tak pod górkę, że nie wiem co googlać.

1. Pobierz wszystkie dane z pliku dane.xls i zapisz je w macierzy A

2. Utwórz macierze o wymiarach A1-6x10, A2-3x150, A3-5x1, A4-1x7 zawierające dowolne dane z macierzy A ale nie rozpoczynające się jej pierwszą komórką (zestawy danych
Cesarz_Polski - Elo matlabowe świry. Weźcie mi pomóżcie, albo nakierujcie na komendy,...

źródło: comment_iifmhnFeLOlJPYLg41mo8T7HOKOBBXiy.jpg

Pobierz
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Cesarz_Polski: Eh, nie wiem co w rzeczywistości wklepałeś.

Pewnie i tak powinno być: A1(1:end)=A(randi(numel(A)-1)+1,[60,1])

Nie chce mi się bawić w takie korepetycje bez zapłaty i bez patrzenia na to co rzeczywiście robisz.
  • Odpowiedz
@bezznaczenia: Sprawdź bloki „Sources”. Powinien być co najmniej jeden do wczytywania z pliku. Jeśli musisz obrobić dane to wczytaj je najpierw do przestrzeni roboczej (workspace) a potem wykorzystaj inny blok do wczytania z niego.
  • Odpowiedz
Ostatni raz Matlaba widziałem parę lat temu, nie mam czasu wchodzić w szczegóły - ale może coś Ci pomoże opisanie jak bym podszedł do problemu:

1) Zastajemy taką sytuację: samolot ma masę A, podczas lotu masa zmniejsza się przez zużycie paliwa, a zwiększa poprzez gromadzenie się lodu. Zmianę masy (zarówno na plus, jak i na minus) da się obliczyć w funkcji czasu.

2) Napisałbym funkcję, która oblicza wartość masy w danej sekundzie (można to
  • Odpowiedz
@DJ_Luki: u mnie movicon robił za server opc oraz wizualizacje (plus część sterowania siedziała w skryptach w scadzie - ale to tylko do zabawy) a wszystko inne było zasymulowane w matlabie który był klientem opc
  • Odpowiedz
Problem jest następujący: Mam tablice z wynikami zależnymi od dwóch zmiennych. Chciałbym te wyniki interpolować, żeby dało się uzyskiwać wyniki także między tymi punktami węzłowymi, a także żebym otrzymał ładny wykres trójwymiarowy. Jest możliwe takie cos?

#matematyka #programowanie #matlab
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@gizmo930: W ogólnym przypadku nie, nie da się dostać, przynajmniej nie w procedurze interpolacji. Interpolacja takiej siatki polega na wzięciu najbliższych węzłów, i na ich podstawie i odległości do nich wyliczeniu wartości punktu pomiędzy tymi węzłami.

Mógłbyś np. za pomocą optymalizacji dopasować funkcję dwóch zmiennych, oczywiście jeśli zdefiniowałbyś strukturę tej funkcji.
  • Odpowiedz
Robię program w #matlab przy pomocy GUIDE. Mam 2 button groups i chcę, aby jedno było zależne od drugiego.
GROUP 1: A or B
GROUP 2: C or D
i teraz chcę zrobić np. żeby przy danych konfiguracjach działy się różne akcje np.:
A - C: akcja 1
A - D: akcja 2
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@wykoszonytrawnik: Płacisz coś? Jak nie, to powiem tyle, że subplot służy do przełączania między kolejnymi podwykresami, meshgrid służy do wyliczenia siatek współrzędnych na podstawie wektorów a mesh i surf są do właściwego rysowania w 3D. Sinusa wystarczy wyliczyć i wyrysować plotem po tym jak ustawisz subplot na właściwym miejscu.

Polecam użyć pomocy (helpa) matlabowej.
  • Odpowiedz