Přednáška 4

Transkript

Přednáška 4
1. Způsoby zadání vektorů, ukládání proměnných
>> repmat(a,2,2)
ans =
1
1
>>M = [ ]
>>A(m,:) = [ ]
>>A(:,n) = [ ]
2
2
3
1
2
3
3
1
2
3
…uloží prázdnou matici
…smaže m-tý řádek matice A
…smaže n-tý sloupec matice A
indexace
>>a=[1 3 2 4 5 7 9 2];
>>a1=a(6)
a1 = 7
>>a=[1 3 2 4 5 7 9 2];
>>a1=a([6 1 3 2])
a1 =
7
1
2
…index skaláru
…index vektoru
…vybere hodnotu 6.,1.,3.,2.prvku vektoru a
3
>>a1=a;
>>a1([2 4 6])=[-5 -4 -3] …nahrazeni prvku pole
a1 =
1
-5
2
-4
5
-3
9
2
>>A=[16,3,2,13;5,10,11,8;9,6,7,12;4,15,14,1];
>>A(:,[1 3 2 4])
…přeuspořádání sloupců podle indexů
ans =
16
2
3
13
5
11
10
8
9
7
6
12
4
14
15
1
2. Logické funkce, logické operace
Logické funkce
all(x)
any(x)
exist('x')
finite(x);
isinf(x)
isempty(x)
isstr(x)
Pravda (1) jestliže všechny prvky x jsou pravdivé
Pravda (1) jestliže aspoň jeden prvek x je pravdivý
Kontroluje, zda funkce nebo proměnná x existuje
Pravda (1) jestliže prvek x je konečný; resp. nekonečný
Pravda (1) jestliže matice je prázdná
Pravda (1) jestliže x je textový řetězec
Logické operace užitím relačních operátorů
>> z=[1 3 6 7 3]; z>2
ans = 0
1
1
1
1
>> X=1:10; X(X<5)
ans = 1
2
3
4
Logické indexy
>>a=[1 3 2;4 6 5;7 8 9]; a(a>3 & a<7)
ans = 4
5
6
>>a(a>1 & a<7)=[0]
ans =
1
0
0
0
0
0
7
8
9
3. Práce s řetězci
Znakové řetězce v PC-MATLABu jsou vymezeny apostrofy:
>>s = 'Hello';
Text je uložen ve vektoru, každý element obsahuje jeden znak. Znaky jsou uloženy
jako ASCII hodnoty, funkci abs můžeme použít k vypsání jejich ASCII kódů:
>>abs(s)
Skládání řetětzců je tudíž ekvivalentní skládání vektorů –
>>s = [s 'World'] dá text 'Hello World'. K převodu čísel na znakovou
reprezentaci jsou k dispozici funkce sprintf, num2str, int2str.
K vytváření jednoduchých textových maker slouří funkce eval.
>>eval(t) ,
kde t je řetězec. Funkce způsobí, že t se interpetuje jako příkaz nebo část výrazu.
Příklad vhodného použití této funkce ..viz funkce funm ze standardní knihovny.
Text a řetězce:
eval
num2str
int2str
setstr
sprintf
isstr
strcomp
hex2num
vyhodnocení textového makra
převod čísla na řetězec
převod celého čísla na řetězec
nastavení značky udávající, že matice je řetězec
převod čísla na řetězec
detekce řetězcových proměnných
porovnávání řetězcových proměnných
převod hex-řetězce na číslo
>>eval
…vyvolá řetězec, který chápe jako
Matlabovský výraz nebo příkaz.
>>x=[1 3 1 5 9];
>>st='sqrt(sum(x.*x))';%delka vektoru
>>eval(st)
ans =
10.8167
Příklad užití textového řetězce
>> str='Ahoj. Který je den, mesic a rok?';
…definice proměnné přes řetězec
>>disp(str)
…zobrazeni řetězce
Ahoj. Který je den, mesic a rok?
>>size(str) % delka retezce
ans =
1
32
>> str([1:15,29:32])% pristup k urcitym prvkum retezce
ans =
Ahoj. Který je rok?
Použití funkce strcat k řetězení znakových polí:
>> a1=input('jmeno :','s')
jmeno :pokus
a1 =pokus
>> a2=input('pripona :','s')
pripona :txt
a2 =txt
>> U1=strcat(a1,'.',a2)
U1 =pokus.txt
Použití funkce num2str k převodu čísla na řetězec:
>>y = num2str (x)
…převede pole x na znakové pole
s přesností na 4 desetinná místa
4. Načtení dat z jiného software
Funkce textread čte formátovaná data z textového souboru.
[A,B,C,...] = textread ('soubor','format')
čte dle zadaných formátů :
%s –řetězec,
%f –číslo v pohyblivé řádové čárce,
%u –celé číslo,
%c- znak
>> [x,y] = textread('demo.txt','%s %s')
Funkce image načte soubory ve formátech obrázku (*.jpg, *.tiff, …)
>>image(C)
zobrazí proměnnou C, která musí být uložen v Workspace.
>>A=imread('obraz.jpg')
načte obrazový soubor do proměnné A
>>imwrite(A, 'obraz1.jpg')
z Matlabu uloží soubor A do obrazového formátu *.jpg pod názvem obraz
5 Základní grafika
x=0:0.05:5;
y=sin(x.^2);
plot(x,y);
x = -2.9:0.2:2.9;
bar(x,exp(-x.*x));
x=0:0.25:10;
stairs(x,sin(x));
x=-2:0.1:2;
y=erf(x);
e = rand(size(x))/10;
errorbar(x,y,e);
t=0:.01:2*pi;
polar(t,abs(sin(2*t).*cos(2*t
)));
x = 0:0.1:4;
y = sin(x.^2).*exp(-x);
stem(x,y)
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
axis square; grid on
z=peaks(25);
mesh(z);
colormap(hsv)
z=peaks(25);
surf(z);
colormap(jet);
z=peaks(25);
surfl(z);
shading interp;
colormap(pink);
z=peaks(25);
contour(z,16);
colormap(hsv)
x = -2:.2:2;
y = -1:.2:1;
[xx,yy] = meshgrid(x,y);
zz = xx.*exp(-xx.^2-yy.^2);
[px,py] = gradient(zz,.2,.2);
quiver(x,y,px,py,2);
nastavení typu, tlouštky a barvy čáry
>>h1=plot(t,y1,t,y2)
>>set(h1,'LineWidth',2,{'LineStyle’},{'--'; ': '})
>>set(h1,{'Color'},{'r';'g'})

3-D graf
>>Z=peaks(20);
vytvoření matice 20 x 20 s hodnotami z Gaussova rozdělení
>>h=surf(Z);
funkce na vykresleni 3-D grafu
>>colormap hot
výběr barevné mapy
>>shading interp
nastavení stínování
>>set(h,'EdgeColor','k')
nastavení osvětlení
>>light('Position',[-2,2,20])
>>lighting phong
>>material([0.4,0.6,0.5,30])
>>set(h,’FaceColor’,[0.7 0.7 0], 'BackFaceLighting',
'lit')
nastavení pohledu
>>view([30,25])
>>set(h,'CameraViewAngleMode','Manual')
nastavení rozsahu os
>>axis([5 15 5 15 -8 8])
>>set(h,'ZTickLabel','Negative||Positive')
nastavení poměru stran obrázků
>> set(h,'PlotBoxAspectRatio',[2.5 2.5 1])

Podobné dokumenty

zde

zde změna formátu zobrazování čísel format short

Více

MATLAB Díl I. – Práce s programem

MATLAB Díl I. – Práce s programem Funkční soubory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Více

AKD 100518 (komentovaný syntax pro SPSS a PSPP)

AKD 100518 (komentovaný syntax pro SPSS a PSPP) *Tabulku čteme tak, že porovnáme navzájem podskupiny nezávislé proměnné (stupně vzdělání) podle vlastností závislé proměnné (kvartily příjmu) → tabulku čteme „po řádcích“ (pokud máme nezávislý znak...

Více

verze v pdf - Analýza kvantitativních dat

verze v pdf - Analýza kvantitativních dat přesnost potřebujme čtyřnásobný rozsah výběru • Obvykle nám stačí pokud je pravděpodobnost, že cca 2/3 naměřených hodnot leží v rozsahu hranice průměru nebo +/- 1 jejich vlastní standardní chyby (SE)

Více

Digitalizace

Digitalizace Martina Mudrová

Více

ROZ1 - Cv. 1 - the Department of Image Processing

ROZ1 - Cv. 1 - the Department of Image Processing ; za přı́kazem potlačı́ zobrazenı́ výsledku (CTRL+C)

Více

cvičení 01

cvičení 01 počet sloupců v histogramu, v případě obrázku v odstínech šedi tento parametr nabývá hodnoty 256) a poslední použitý vstupní parametr reprezentuje rozsah hodnot sloupců. Výstupními parametry jsou h...

Více

Toto

Toto sprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 sscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...

Více