Základy práce s textovými reťazcami Doteraz sme v MATLABe pracovali s datovými typmi: reálne číslo, vektor, matica. Veľmi dôležitým a často používaným

Podobné dokumenty
Microsoft Word - 6 Výrazy a vzorce.doc

Vzorové riešenia úlohy 4.1 Bodovanie Úvod do TI 2010 Dôvod prečo veľa z Vás malo málo bodov bolo to, že ste sa nepokúsili svoje tvrdenia dokázať, prič

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

III. Diferenciálny počet funkcie viac premenných (Prezentácia k prednáškam, čast B) Matematická analýza IV (ÚMV/MAN2d/10) RNDr. Lenka Halčinová, PhD.

8

Informačné technológie

PowerPoint Presentation

Microsoft Word - skripta3b.doc

Teória pravdepodobnosti Zákony velkých císel

(ıkolské kolo-PYT)

Cvičenie 9 Riešené príklady 1. Príklad min f(x 1, x 2 ) = x x x 1 s.t. x 1 80 x 1 + x Pre riešenie úlohy vykonáme nasledujúce kroky

Microsoft Word - Zaver.pisomka_januar2010.doc

Príklad 5 - Benzén 3. Bilančná schéma 1. Zadanie príkladu n 1 = kmol/h Definovaný základ výpočtu. Na základe informácií zo zadania si ho bude v

Microsoft Word - mnohouholnik.doc

Microsoft Word - 06b976f06a0Matice - Uzivatelska Dokumentacia

Matematika 2 - cast: Funkcia viac premenných

MO_pred1

Metódy násobenie v stredoveku

Hranoly (11 hodín) September - 17 hodín Opakovanie - 8. ročník (6 hodín) Mesiac Matematika 9. ročník 5 hodín/týždeň 165 hodín/rok Tematický celok Poče

Pokrocilé programovanie XI - Diagonalizácia matíc

1. KOMPLEXNÉ ČÍSLA 1. Nájdite výsledok operácie v tvare x+yi, kde x, y R. a i (5 2i)(4 i) b. i(1 + i)(1 i)(1 + 2i)(1 2i) (1 7i) c. (2+3i) a+bi d

Autoregresné (AR) procesy Beáta Stehlíková Časové rady, FMFI UK Autoregresné(AR) procesy p.1/22

bakalarska prezentacia.key

2.5. Dotyčnica krivky, dotykový kužeľ. Nech f je krivka a nech P V (f) (t.j. m P (f) 1). Ak m P (f) = r a l je taká priamka, že I P (f, l) > r, potom

8 Cvičenie 1.1 Dokážte, že pre ľubovoľné body X, Y, Z platí X + Y Z = Z + Y X. 1.2 Dokážte, že pre ľubovoľné body A, B, D, E, F, G afinného priestoru

Microsoft Word - Final_test_2008.doc

1 Rekurencie este raz riesenia niektorych rekurencii z cvik. mame danu rekurenciu napr T (n) = at ( n b ) + k. idea postupu je postupne rozpisovat cle

STRUČNÝ NÁVOD KU IP-COACHU

NÁVRH UČEBNÝCH OSNOV PRE 1

Microsoft Word - Transparencies03.doc

Úvod do lineárnej algebry Monika Molnárová Prednášky 2006

Novinky programu MSklad

Oceňovanie amerických opcií p. 1/17 Oceňovanie amerických opcií Beáta Stehlíková Finančné deriváty, FMFI UK Bratislava

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

1 Portál pre odborné publikovanie ISSN Heuristický adaptívny PSD regulátor založený na miere kmitavosti Šlezárová Alexandra Elektrotechnika

Snímka 1

VZTAH STUDENTŮ VŠ K DISCIPLÍNÁM TEORETICKÉ INFORMATIKY

SRPkapitola06_v1.docx

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

Metódy dokazovanie v matematike 1 Základné pojmy Matematika exaktná veda vybudovaná DEDUKTÍVNE ZÁKLADNÉ POJMY základy každej matematickej teórie sú in

2016_01_27_Podavanie_DP_vozidla_2015

9. kapitola Maticová algebra II systém lineárnych rovníc, Frobeniova veta, Gaussova eliminačná metóda, determinanty 1. Systém lineárnych rovníc Systém

4. Pravidlo ret azenia. Často sa stretávame so skupinami premenných, ktoré zložitým spôsobom závisia od iných skupín premenných. Pravidlo ret azenia p

Photo Album

Snímka 1

TEORETICKÉ ÚLOHY

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

Microsoft Word - Algoritmy a informatika-priesvitky02.doc

SVETELNÁ ENERGIA SOLÁRNY ČLÁNOK ZALOŽENÝ NA UMELEJ FOTOSYNTÉZE 15. mája ODPOVEĎOVÝ HÁROK 1 - Krajina a družstvo:.. Meno: Meno:. Meno:.

Microsoft Word - prirucka_katedry_nova

Preco kocka stací? - o tom, ako sú rozdelené vlastné hodnoty laplasiánu v limite, ked sú velké

1)

STRUČNÝ NÁVOD KU IP-COACHU

A 1

Úvodná prednáška z RaL

Prenosový kanál a jeho kapacita

SK MATEMATICKA OLYMPIADA 2010/ ročník MO Riešenia úloh domáceho kola kategórie Z4 1. Doplň do prázdnych políčok čísla od 1 do 7 každé raz tak,

Vypracované úlohy z Panorámy z fyziky II Autor: Martin Brakl UČO: Dátum:

Učebné osnovy so vzdelávacím štandardom

O možnosti riešenia deformácie zemského povrchu z pohladu metódy konecných prvkov konference pro studenty matematiky

CH43skFri07

Farba skupiny: červená Označenie úlohy:,zohrievanie vody elektrickým varičom (A) bez pokrievky, Úloha: Zistiť, ako závisí účinnosť zohrievania vody na

2

V jedinej lekcii Meno: 1 Ako reagujete na profesionálne médiá? Pracujte vo dvojiciach a pripravte sa na hranie rolí. Označte sa ako Osoba A a Osoba B.

Modelovanie nového produktu na trhu: Bassov model Beáta Stehlíková Cvičenia z časových radov, FMFI UK Modelovanie nového produktu na trhu: Bassov mode

Metrické konštrukcie elipsy Soňa Kudličková, Alžbeta Mackovová Elipsu, ako regulárnu kužeľosečku, môžeme študovať synteticky (konštrukcie bodov elipsy

Čísla Nájdite všetky dvojice prirodzených čísiel, ktoré vyhovujú rovnici: 2 ( a+ b) ( a b) + 2b ( a+ 2b) 2b = 49 RIEŠENIE ( ) ( ) ( ) 2 a+ b a

Informačná a modelová podpora pre kvantifikáciu prvkov daňovej sústavy SR

CHO45stkAprRi

Microsoft Word - Diskusia11.doc

Aplikace matematiky- záverečná práca Juraj Bodík 28. septembra 2017 Definície Žena - objekt ohodnotený celým číslom. Každé dve ženy sa dajú porovnat a

Používateľská príručka POUŽÍVATEĽSKÁ PRÍRUČKA Generátor XML dávok pre Informačný systém kontrolných známok z MS Excel šablóny Dátum: Verzia

Operačná analýza 2

Microsoft Word - Argumentation_presentation.doc

MERANIE U a I.doc

SK MATEMATICKÁOLYMPIÁDA skmo.sk 2009/ ročník MO Riešenia úloh česko-poľsko-slovenského stretnutia 1. Určte všetky trojice (a, b, c) kladných r

TEORETICKÉ ÚLOHY

Paralelné algoritmy, cast c. 3

Pokrocilé spracovanie obrazu - Fourierová transformácia

Republika Srbsko MINISTERSTVO OSVETY, VEDY A TECHNOLOGICKÉHO ROZVOJA ÚSTAV PRE HODNOTENIE KVALITY VZDELÁVANIA A VÝCHOVY VOJVODINSKÝ PEDAGOGICKÝ ÚSTAV

Pocítacové modelovanie - Šírenie vln v nehomogénnom prostredí - FDTD

trafo

Využitie moderných meracích technológií na hodnotenie kvality tlače

moja praca

17. medzinárodná vedecká konferencia Riešenie krízových situácií v špecifickom prostredí, Fakulta špeciálneho inžinierstva ŽU, Žilina, máj 2

Stravné - přecenění

Algoritmizácia a programovanie - Príkazy

48-CHO-Dz-kraj-teória a prax-riešenie

Digitálne technológie v každodennom živote 3. ročník akademický rok 2019/2020 Harmonogram prednášok

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Metodika archivácie verzií HW Tímový projekt Stratos FIIT M

Rozvojom spoločnosti najmä v druhej polovici minulého storočia dochádza čím ďalej tým viac k zásahu človeka do životného prostredia

53. ročník CHO, krajské kolo - odpoveďový hárok, kategória B

Slide 1

Priebeh funkcie

Príklad 9 - Lisovanie+ Vylúhovanie+ Sušenie 3. Bilančná schéma 1. Zadanie príkladu Bilančná schéma: m6 =? w6a = m4 =? kg 0.1 Zvolený základ výpočtu: w

VSDC Free Video Editor stručný návod na používanie Link na sťahovanie softvéru: K prog

Uchádzač o štúdium potvrdenie el. návratky. Prihlasovacie údaje do el. návratky na stránke vidíte na stránke

Funkcie viac premenných

Súkromné gymnázium, Česká 10, Bratislava INFORMATIKA

Prepis:

Základy práce s textovými reťazcami Doteraz sme v MATLABe pracovali s datovými typmi: reálne číslo, vektor, matica. Veľmi dôležitým a často používaným dátovým typom je textový reťazec. Ako si môžeme predstaviť textový reťazec? Predstavte si, že do premennej potrebujete uložiť názov ovocia, ktoré je nevyhnutné na prípravu jablkového koláča. V MATLABe je to možné vykonať nasledovne: ovocie = 'jablko' ovocie = jablko Toto je v podstate najjednoduchší spôsob akým je možné vytvoriť textový reťazec. Skôr ako si ukážeme komplexnejšie spôsoby tvorby reťazcov, vysvetlíme si niektoré funkcie na prácu s reťazcami. Porovnanie dvoch reťazcov. Na porovnanie reťazcov v MATLABe slúži funkcia strcmp. ovocie1 = 'jablko' ovocie2 = 'melon' strcmp(ovocie1,ovocie2) an 0 V prípade, že reťazce sú rovnaké funkcia vráti hodnotu 1, v prípade že sa reťazce líšia funkcia vráti hodnotu 0. Od teraz si budeme pamätať!!! Na porovnanie dvoch textových reťazcov slúži funkcia strcmp Príklad použitia: meno1='peter'; meno2='udo'; vysledok=strcmp(meno1,meno2) Príklad 1 V kapitole, v ktorej sme sa venovali riadeniu toku programu sme pomocou cyklu vytvorili program, ktorý opakoval cyklus do tej chvíle kým užívateľ nezadal správne heslo. No v danom príklade sme mohli použiť len numerické heslo. Teraz prerobíme príklad tak, aby akceptoval aj textové reťazce. Pýtate sa PREČO? Lebo sa učíme porovnávať reťazce!

textoveheslo=input('zadaj heslo','s'); while (strcmp(textoveheslo,'tajneheslo')==0) disp('zadal si zle HESLO skus znova'); textoveheslo=input('zadaj heslo','s'); end disp('tvoje heslo je spravne'); Poznámka k príkladu: Možno Vás trochu zarazilo použitie funkcie input, kde ako druhý parameter funkcie bol použitý operátor 's'. Tento parameter informuje funkciu aby akceptovala textový reťazec. Ako si to predstaviť? Pár riadkov vyššie je uvedený spôsob, akým tvoriť textové reťazce. To znamená, že ak chceme do premennej meno uložiť krsné meno máme dve možnosti: I. možnosť >> meno=input('zadaj krsne meno:') Zadaj krsne meno: 'Udo' meno = Udo Týmto ale nútime užívateľa aby poznal syntax MATLABu a svoje krsné meno zadal v úvodzovkách. II. možnosť >> meno=input('zadaj krsne meno:','s') Zadaj krsne meno: Udo meno = Udo Je oveľa elegantnejšia, pretože MATLAB dopredu očakáva textový reťazec a užívateľ nemusí zadať svoje meno v úvodzovkách. MATLAB má ešte niekoľko funkcií na porovnanie dvoch reťazcov: strcmpi porovná reťazce r1 a r2 a nerozlišuje veľké a malé písmena; strncmpi(r1,r2) strncmp porovná prvých n-znakov reťazcov r1 a r2; strncmp(r1,r2,n) strncmpi porovná prvých n-znakov reťazcov r1 a r2 a nerozlišuje veľké a malá písmena; strncmpi(r1,r2,n) Konverzia číselnej premennej na textovú Často sa pri programovaní stáva, že potrebujeme z určitého čísla vytvoriť reťazec, prípadne naopak z textového reťazca vytvoriť číslo. Na konverziu čísla na reťazec slúži funkcia num2str.

Príklad použitia: A=25.4; retazec=num2str(a) Naopak konverziu reťazca na číslo je možné vykonať pomocou funkcie str2num. Formátovaný zápis do reťazca Obrovský komfort a univerzálnosť pri práci s reťazcami poskytuje funkcia sprintf. Slúži na formátovaný zápis dát do reťazca. Jej všeobecný prototyp je nasledovný: retazec = sprintf('format',data...) Spôsob akým sú dáta formátované pri vytváraní reťazca sa špecifikuje pomocou formátovacieho reťazca format. Tento formátovací reťazec musí vždy začínať uvádzacím znakom %. Ďalej je nutné zadať typ dát, ktoré budeme formátovať, prípadne presnosť (počet číslic), ktorú chceme zobraziť. Schematický znázornený formátovací reťazec je na nasledujúcom obrázku: Formát vstupných dát je jedno písmeno charakterizujúce typ dát, ktoré sa zapíšu do textového reťazca. Význam niektorých písmen je uvedený v nasledujúcej tabuľke: symbol f d e s význam zánam reálneho čísla záznam celého čísla záznam exponenciálneho čísla záznam reťazca Príkaz sprintf('\n') ukončí riadok. Niekoľko príkladov vysvetľujúcich použitie funkcie sprintf: >> A=10.1 A = 10.1000 >> B=5.4 B = 5.4000

>> s=sprintf('%f',a) 10.100000 >> s=sprintf('%1.2f',a) 10.10 >> s=sprintf('%1.25f',a) 10.1000000000000000000000000 >> s=sprintf('avogardova konstanta je %1.6e',6.02214e23) Avogardova konstanta je 6.022140e+023 >> s=sprintf('sucet cisla A=%1.2f s cislom B=%1.5f je cislo %f',a,b,a+b) Sucet cisla A=10.10 s cislom B=5.40000 je cislo 15.500000 >> krsne='arnold'; >> priezvisko='schwarzneger'; >> vek=54; >> info=sprintf('herec %s %s ma %d rokov.',krsne,priezvisko,vek) info = Herec Arnold Schwarzneger ma 54 rokov. Numerické okienko I: Lineárna interpolácia V inžinierskej praxi sa veľmi často stretnete s pojmom interpolácia. Interpoláciu používame v prípade, keď potrebujeme poznať hodnotu v mieste, kde sme ju nemerali. Preto sa ju snažíme odhadnúť na základe hodnôt v jej bezprostrednom okolí. Geometrický význam lineárnej interpolácie je znázornený na nasledujúcom obrázku:

Príklad 1 Tepelná kapacita vodných roztokov glycerínu v závislosti od teploty je uvedená v nasledujúcej tabuľke: Teplota [ C] 0 20 40 60 80 100 Tepelná kapacita [kjkg -1 K -1 ] 2,261 2,368 2,475 2,583 2,690 2,797 Predstavte si situáciu, že potrebujete určiť (odhadnúť) tepelnú kapacitu pri 65 C. Dosadením do vzorca (I) dostávame V MATLABe je možné vykonať jednorozmernú lineárnu interpoláciu príkazom interp1. Prototyp funkcie: Fhladane=interp1(hodnotyX, hodnotyy, X) V našom prípade by bolo možné vykonať danú interpoláciu nasledovne: X=[0 20 40 60 80 100] Y=[2.261 2.368 2.475 2.583 2.690 2.797] CP_65=interp1(X,Y,65) CP_65 = 2.6098 Príklad 2 Závislosť hustoty roztoku KOH vo vode od zloženia roztoku v hmot.% pri teplote 20 C vyjadruje nasledujúca tabuľka: ρ [kg.m -3 ] 1090 1288 1396 1510 w(koh) 0.1 0.3 0.4 0.5

Ako na potvoru, v labáku pracujete s roztokom KOH so zložením 15 mol.% a potrebujete vedieť jeho molárnu koncentráciu v mol.dm -3. A čo teraz? Riešenie Označíme si A=KOH, B=voda a ideme odvádzať: (I) Dostali sme vzťah na výpočet molárnej koncentrácie pomocou hustoty roztoku. Nebol by žiaden problém, ak by sa hustota so zložením nemenila, t.j. bola by konštantná. Za wa by sme dosadili nasledujúci vzťah: (II) A pre zadanie x A =0,15 by sme tak mohli určiť c A. Avšak hodnota ρ sa so zložením mení (viď tabuľka), teda nevieme aká bude hustota roztoku so zložením 15 mol.%. Preto najprv zostrojíme graf závislosti hustoty roztoku od zloženia v mol.%, potom odčítame hodnotu hustoty pre xa=0,15, dosadíme do vzťahu (I) a vypočítame ca. Zostrojenie grafu v MATLABe: clc wa=[0.10 0.30 0.40 0.50]; ro=[1090 1288 1396 1510]; % [kg/m3] MA=56.11; % [g/mol] MB=18.015; % [g/mol] for i=1:4 xa(i)=(wa(i)/ma)/(wa(i)/ma+(1-wa(i))/mb); end % alebo mozeme pouzit bodkovy sucin % xa=(wa/ma)./(wa/ma+(1-wa)./mb); plot(xa,ro); xlabel('mol. zlomok'); ylabel('hustota [kg/m3]'); Pre hodnotu x A =0,15 odčítaním z grafu vychádza hustota roztoku cca ρ =1345 kg.m -3. Nakoľko už vieme vykonať lineárnu interpoláciu, môžeme do príkladu pridať riadok, ktorý nám určí hodnotu hustoty roztoku: RO_preXA_15=interp1(xA,ro,0.15)

Dostávame hodnotu veľmi podobnú s hodnotou odčítanou z grafu 1.3447e+003 kg.m -3. Dosadením do rovnice, ktorá vznikla spojením rovníc (I) a (II), doplníme program: xa_zadane=0.15; ca=xa_zadane*ma/(xa_zadane*ma+(1-xa_zadane)*mb)*ro_prexa_15/ma; Mól. koncentrácia daného roztoku je c A = 8,5001 mol.dm -3. Numerické okienko II: numerický výpočet prvej derivácie Na tomto mieste sa nebudeme podrobne venovať teórii, akým spôsobom boli odvodené vzťahy na výpočet prvej derivácie. Ukážeme si iba najjednoduchší vzťah na výpočet prvej derivácie spojitej funkcie. Najjednoduchšia aproximácia prvej derivácie je tzv. dvojbodová formula: je čo možno najmenšie číslo. Pre zaujímavosť: pri tejto formule vyrábame chybu rádovo 0,5. (preto je vhodné túto hodnotu voliť čo najmenšiu). Na výpočet prvej derivácie v bode x0 nám teda stačí vypočítať funkčnú hodnotu v bode x0 a funkčnú hodnotu v tesnej blízkosti bodu x0 (teda v bode x0+ ). Ukážka Nech máme funkciu: a chceme vypočítať numerickú deriváciu funkcie v bode x=3: Nech hodnota je číslo 1e-6, potom:

Skutočnú hodnotu vieme získať, nakoľko danú funkciu je veľmi jednoduché analytický zderivovať: po dosadení za x=3 dostávame presnú hodnotu: Ako môžete vidieť, nami vypočítaná numerická hodnota sa len trochu líši od skutočnej hodnoty. Príklad 1 Zostrojte graf funkcie y=x 4-15x 2 +10x+24 a graf prvej derivácie funkcie y. Dve možnosti: Použitie cyklu: X=linspace(-5,5,100) d=1e-6; for i=1:100 Y(i)=X(i)^4-15*X(i)^2+10*X(i)+24; FX0plusD(i)=(X(i)+d)^4-15*(X(i)+d)^2+10*(X(i)+d)+24; FX0(i)= X(i)^4-15*X(i)^2+10*X(i)+24; DER=(FX0plusD-FX0)/d; end plot(x,y,x,der) legend('funkcia Y','Prva derivacia funkcie') Použitie bodkového súčinu: X=linspace(-5,5,100) Y=X.^4-15*X.^2+10*X+24; d=1e-6; FX0plusD=(X+d).^4-15*(X+d).^2+10*(X+d)+24; FX0=X.^4-15*X.^2+10*X+24; DER=(FX0plusD-FX0)/d; plot(x,y,x,der) legend('funkcia Y','Prva derivacia funkcie') Výsledok bude samozrejme totožný.