Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

OSNOVA: a)3D grafické výstupy – doplnění b)Práce se soubory Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST.

Podobné prezentace


Prezentace na téma: "OSNOVA: a)3D grafické výstupy – doplnění b)Práce se soubory Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST."— Transkript prezentace:

1 OSNOVA: a)3D grafické výstupy – doplnění b)Práce se soubory Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST BPC2E PŘEDNÁŠKA 9

2 3D grafické výstupy - doplnění (1/3) Příklad parametrické 3D křivky – použití plot3() 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: BPC2E_Ex135.m

3 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 parametrického 3D povrchu - použití mesh Příklad: BPC2E_Ex136.m

4 3D grafické výstupy - doplnění (3/3) Příklad parametrického 3D povrchu - použití surf 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: BPC2E_Ex137.m

5 Práce se soubory v Matlabu (1/10) 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()

6 Práce se soubory v Matlabu (2/10) fid = fopen(filename, permission, machineformat, encoding) – otevře soubor se jménem filename (může být vč. cesty, jinak z prac. adr.), otevřený soubor je identifikovatelný pomocí fid (čí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ý

7 Práce se soubory v Matlabu (3/10) 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 IEEE big-endian číslo v proměnné čárce ( float ) 'ieee–le' nebo 'l' je IEEE little-endian číslo v proměnné čárce 'ieee-be.l64' nebo 's' je IEEE big-endian číslo v pro- měnné čárce s 64-bitovou délkou apod.

8 Práce se soubory v Matlabu (4/10) 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í 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]

9 Práce se soubory v Matlabu (5/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ž 'int16' – 2B integer znaménkový ( 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ší

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

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

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

13 Práce se soubory v Matlabu (9/10) 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) %read from CSV file data = csvread('data.csv') figure() mesh(data) Příklad: BPC2E_Ex142.m

14 Práce se soubory v Matlabu (10/10) 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) %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: BPC2E_Ex143.m

15 Téma následující přednášky – Funkce v Matlabu a model komunikačního systému DĚKUJI ZA POZORNOST


Stáhnout ppt "OSNOVA: a)3D grafické výstupy – doplnění b)Práce se soubory Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST."

Podobné prezentace


Reklamy Google