Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Vysvětlení příkazů z matlabu - Java

Matlab je založený na práci s maticemi, proto bych doporučil při implementaci kódu z Matlabu do Javy použít některou ze specializovaných knihoven pro lineární algebru, konkrétně za sebe můžu doporučit http://math.nist.gov/javanumerics/jama/ . Je zbytečné vymýšlet kolo a znova vymýšlet kód pro inicializování matic a počítání s nimi. Navíc dobrá knihovna nabídne některé optimalizace (typicky třeba u násobení matic, ty to asi u tohohle příkladu nepostřehneš, ale u násobení matic velikostí 1e6 x 1e6 už je to znát poměrně hodně). U JAMA jsem viděl, že to pár lidí, které znám, používalo pro implementaci algoritmů pro strojové učení v Javě.

Zbytek vysvětlím na příkladech:

t = (0:deltaT:T);
Př. t = (0:0.1:1);
ti vygeneruje vektor [0 0.1 0.2 ...... 0.9 1]

v = zeros(length(t), 3);
Př. v=zeros(2,3);
ti do proměnné v uloží nulovou matici 2x3, tedy

[0 0 0]
[0 0 0]


v(1, :) = v0;
Př. v(1,:) = 2;

udělá z matice
[0 0 0]
[0 0 0]

následující matici, vlastně nahradí první řádek dvojkami, tedy hodnotou v0
[2 2 2]
[0 0 0]
Zbytek už jsou prosté operace s maticemi a vektory. Jinak pozor - určitě nestačí udělat si třídu jenom pro třírozměrný vektor, vektory můžou být obecně n rozměrné, klidně můžou mít 1000 prvků. U matic je to podobné.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny