NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Avatar
Aleš Halama
Člen
Avatar
Aleš Halama:7.1.2017 13:19

Čau,
nevíte někdo prosím vás jak bych mohl z mého 2D grafu vytvořit 3D graf (MATLAB)? takhle jak je to na obrázku to znázorňuje funkci u(x) v jednotlivých časech, které nemam znázorněné. Já bych chtěl přidat ještě čas "t" čili u(x,t) jako třetí souřadnicovou osu a ke každému času "t" vykreslit příslušnou vlnu.

Děkuji za pomoc.

 
Odpovědět
7.1.2017 13:19
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Aleš Halama
Martin Dráb:7.1.2017 13:32

Možná, že surf bude přesně to, co hledáš.
https://www.mathworks.com/…ef/surf.html

Nahoru Odpovědět
7.1.2017 13:32
2 + 2 = 5 for extremely large values of 2
Avatar
Aleš Halama
Člen
Avatar
Odpovídá na Martin Dráb
Aleš Halama:7.1.2017 14:32

Díky za pomoc, ale surf mi asi nepomůže. Problém je v tom, že osu X mám danou vektorem a osu Y taky vektorem. Když napíšu do cyklu plot(X,Y), tak to vykreslí příslušné vlny. Chtěl bych přidat třetí souřadnici Z neboli čas t = 1:1:10 a pro t=1 vykreslit první vlnu, pro t=2 druhou.......až do t=n. Vektory X,Y mají stejnou délku.

 
Nahoru Odpovědět
7.1.2017 14:32
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Aleš Halama
Martin Dráb:7.1.2017 15:51

surf(X, Y, Z) to není?

Nahoru Odpovědět
7.1.2017 15:51
2 + 2 = 5 for extremely large values of 2
Avatar
Aleš Halama
Člen
Avatar
Odpovídá na Martin Dráb
Aleš Halama:7.1.2017 16:44

Zkoušel jsem to tam napsat, ale píše mi to: "Z must be a matrix, not a scalar or vector". Nevím jestli rozumíš tomu co chci. Mám nějakej while cyklus a v něm se mi počítají ty vlny co jsou na obrázku v příloze tj. plot(X,Y), ale já bych chtěl plot3 v podobě plot3(X,Y,1) v první cyklu, plot3(X,Y,2) v druhym, plot3(X,Y,3).....až do nějakého zvoleného čísla plot3(X,Y,n). "X" je vektor, "Y" vektor, ale "n" je číslo a v tom je podle mě problém, který nevím jak řešit.

 
Nahoru Odpovědět
7.1.2017 16:44
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Aleš Halama
Martin Dráb:7.1.2017 17:21
No, podle mě bys totiž musel trošku přeskládat souřadnice, aby ten surf vůbec dával smysl. Jestli to chápu dobře, tak ty chceš vykreslit funkci u(x, t), takže bych zkusil surf(X, Y, Z), kde
X je to tvoje x (vektor),
Y je čas (t) (také vektor),
Z je matice udávající hodnoty u(x, t), přičemž její velikost (počet řádků a sloupců) musí logicky odpovídat délkám vektorů X a Y. Už si bohužel z matlabu nepamatuji, zda má vektory implicitně řádkové či sloupcové (asi to první?), ale podle toho budeš muset sestrojit tu matici Z.

Takže v rámci while cyklu budeš počítat hodnoty a vykreslíš je až po něm skrz jedno volání surf.

Nahoru Odpovědět
7.1.2017 17:21
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.