1 / 16

Přednáška 9 7.4.2014 Jiří Šebesta

Počítače a programování 2. Přednáška 9 7.4.2014 Jiří Šebesta. TÉMA – Ú vod do MATLAB u. 3D grafické výstupy - doplnění Práce se soubory. Příklad parametrické 3D křivky – použití plot3(). 3 D grafické výstupy - doplnění (1/ 3 ). t =-15:0.001:15 %paramater

cybill
Télécharger la présentation

Přednáška 9 7.4.2014 Jiří Šebesta

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Počítače a programování 2 Přednáška 9 7.4.2014 Jiří Šebesta

  2. TÉMA – Úvod do MATLABu 3D grafické výstupy - doplnění Práce se soubory

  3. Příklad parametrické 3D křivky – použitíplot3() 3D grafické výstupy - doplnění (1/3) t=-15:0.001:15%paramater X =(1+0.25*cos(75*t)).*cos(t) Y = (1+0.25*cos(75*t)).*sin(t) Z = t+2.0*sin(75*t) figure() plot3(X,Y,Z) colormap([1 0 0]) grid on title('Helical toroid') xlabel('x') ylabel('y') zlabel('z') Příklad: Ex129.m

  4. Příklad parametrického 3D povrchu - použití mesh 3D grafické výstupy - doplnění (2/3) kx = 1; %size in x axis ky = 1; %size in y axis kz = 2; %size in z axis meshdens = 0.05*pi; [th phi] = meshgrid(-pi:meshdens :pi, 0:meshdens:2*pi); x = kx*sinh(th).*cos(phi); y = ky*sinh(th).*sin(phi); z = kz*sinh(th); figure() mesh(x,y,z) colormap([0 0 1; 1 0 0])%blue & red grid on title('Hyperboloid') axis equal Příklad: Ex130.m

  5. Příklad parametrického 3D povrchu - použití surf 3D grafické výstupy - doplnění (3/3) a = 0.15;b = 1;g = 0.1;n = 1.5; [u v] = meshgrid(0:0.05*pi:2*pi, 0:0.05*pi:2*pi); x = a*(1-v/(2*pi)).*cos(n*v).* (1 + cos(u)) + g*cos(n*v) y = a*(1-v/(2*pi)).*sin(n*v).* (1 + cos(u)) + g*sin(n*v) z = a*(1-v/(2*pi)).*sin(u) + b*v/(2*pi) figure() surf(x,y,z) colormap('default') title('Horn/shell') Příklad: Ex131.m

  6. Práce se soubory v Matlabu je podobná jako práce se soubory v ANSI-C: • otevření souboru fopen() – parametry specifikují druh práce se souborem (čtení, zápis, přidávání) • čtení ze souboru fread() – parametry specifikují skladbu dat • zápis do souboru fwrite() - parametry specifikují skladbu dat • uzavření souboru fclose() – parametrem je identifikátor uzavíraného souboru • formátované čtení ze souboru fscanf() • formátovaný zápis do souboru fprintf() Práce se soubory v Matlabu (1/10)

  7. fid = fopen(filename, permission, machineformat, encoding) – otevře soubor se jménem filename (může být včetně cesty, jinak z pracovního adresáře), otevřený soubor je identifikovatelný pomocí fid (přidělené číslo) permission identifikuje přístup k souboru: 'r'– otevře soubor pro čtení (defaultní atribut) 'w'– otevře nový soubor pro zápis, případný původní soubor je přemazán 'a'– otevře soubor pro přidávání na konec, pokud neexistuje otevře se nový pro zápis 'r+'– otevře soubor pro čtení i zápis 'w+'– otevře soubor pro zápis, přičemž je možné i ze souboru číst, případný původní soubor je přemazán 'a'– otevře soubor pro přidávání na konec, přičemž je možné i ze souboru číst, pokud neexistuje otevře se nový Práce se soubory v Matlabu (2/10)

  8. Součástí permission může být i identifikace, zda se jedná o binární (defaultní, bez označení) či textový soubor (do atributu permission přidán znak 't') : 'r'– otevře soubor pro čtení binárního souboru 'rt'– otevře soubor pro čtení textového souboru machineformat specifikuje speciální definice číselného formátu dat v souboru: 'ieee–be'nebo'b'je IEEEbig-endian číslo v proměnné čárce (float) 'ieee–le'nebo'l'‚ je IEEElittle-endian číslo v proměnné čárce 'ieee-be.l64'nebo 's'‚ je IEEE big-endian číslo v proměnné čárce s 64-bitovou délkou apod. Práce se soubory v Matlabu (3/10)

  9. encoding definuje typ použitého znakového kódování: ''– nespecifikované kódování (defaultní, používá se aktuální) 'UTF-8', ‚latin1', ‚US-ASCII'– další možné varianty znakového kódování Práce se soubory v Matlabu (4/10) • A = fread(fid, count, precision)přečte data ze souboru identifikovaného pomocí fid do proměnné (matice) A o počtu (objemu) count s danou přesností precision • parametrem count lze specifikovat • počet čtených dat, např. n (uloží se do vektoru s délkou n) • všechny data pomocí identifikátoru inf (uloží se do vektoru) • rozměr cílové matice A, např. [row, col]

  10. precision definuje formát dat v souboru: 'uint8'– 1B integer bezznaménkový (defaultní, 0 až 255) 'int8'– 1B integer znaménkový (-128 až 127) 'uint16'– 2B integer bezznaménkový (0 až 65535 'int16'– 2B integer znaménkový (-32768 až 32767) dál'uint32', 'int32','uint64', 'int64' 'schar'– znaky znaménkové vyjádření 'uchar'– znaky neznaménkové vyjádření dál'float32', 'float64', 'double64', 'bitN' , 'ubitN' a další Práce se soubory v Matlabu (5/10)

  11. Příklad načtení 32 bit float čísel se souboru s neznámým počtem čísel ze souboru ’data1.dat’ Práce se soubory v Matlabu (6/10) %read to float vector fid = fopen('data1.dat','r') vect = fread(fid, inf, 'float32') fclose(fid) size(vect) figure() plot(vect) Příklad: Ex132.m

  12. Příklad načtení matice int32 čísel se souboru do matice o rozměru 100 x 100 ze souboru ’altprofile.dat’ Práce se soubory vMatlabu(7/10) %read to integermatrix fid = fopen('altprofile.dat','r') H = fread(fid, [100 100], 'int32') fclose(fid) size(H) figure() surf(H) Příklad: Ex133.m

  13. count = fwrite(fid, A, precision, machineformat) uloží matici A do souboru, další parametry shodné s fread() Práce se soubory v Matlabu (8/10) % write int vector to file A = 1:250; fid = fopen('my.dat', 'w') length = fwrite(fid, A,'uint8') fclose(fid) %read to int vector fid = fopen('my.dat','r') vect = fread(fid, inf, 'uint8') fclose(fid) size(vect) figure() plot(vect) Příklad: Ex134.m + Ex135.m

  14. Matlab umožňuje pracovat s řadou datových formátů přímo, viz help pro fileformats. Ke každému z uvedených formátů existuje funkce pro čtení i funkce pro zápis. Při zápisu a čtení se nepoužívá fopen() a fclose(). Příklad csvread() pro čtení dat z Excelu (musí to být americká verze – čísla s des. tečkou, oddělení čárkou) Práce se soubory v Matlabu (9/10) %read from CSV file data = csvread('data.csv') figure() mesh(data) Příklad: Ex136.m

  15. Příklad imread() pro čtení obrázkových souborů různých formátů, výsledkem je matice výška x šířka x 3 (hodnoty pro RGB složky) Práce se soubory v Matlabu (10/10) %read picture from JPEG file RGB = imread('testjpg.jpg', 'JPG'); R = RGB(:,:,1); G = RGB(:,:,2); B = RGB(:,:,3); figure(1) contour(R) figure(2) contour(G) figure(3) contour(B) Příklad: Ex137.m

  16. TÉMA NÁSLEDUJÍCÍ PŘEDNÁŠKY Model komunikačního systému DĚKUJI ZA POZORNOST

More Related