Tarata Informatica Medicala Vol1 2010 8 PROGRAMARE

58
Mihai Tăţă INFORMATICĂ MEDICALĂ Vol. I Editura SITECH, Craiova, 2010

description

2

Transcript of Tarata Informatica Medicala Vol1 2010 8 PROGRAMARE

  • Mihai Tr

    INFORMATIC MEDICAL

    Vol. I

    Editura SITECH, Craiova, 2010

  • ii

    2010 Editura Sitech Craiova Toate drepturile asupra acestei ediii sunt rezervate editurii. Orice reproducere integral sau parial, prin orice procedeu, a unor pagini din aceast lucrare, efectuate fr autorizaia editorului este ilicit i constituie o contrafacere. Sunt acceptate reproduceri strict rezervate utilizrii sau citrii justificate de interes tiinific, cu specificarea respectivei citri. 2010 Editura Sitech Craiova All rights reserved. This book is protected by copyright. No part of this book may be reproduced in any form or by any means, including photocopying or utilised any information storage and retrieval system without written permision from the copyright owner. Editura SITECH din Craiova este acreditat de C.N.C.S.I.S. din cadrul Ministerului Educaiei i Cercetrii pentru editare de carte tiinific.

    Editura SITECH Craiova Str. Romul, Bloc T1, Parter Tel/fax: 0251/414003 E-mail: [email protected]

    ISBN

  • iii

    Cuprins Cuvnt nainte ..........................................................vii 1. INTRODUCERE................................................... 1 1.1 Informaie ........................................................... 2 1.2 Cunoatere ......................................................... 4 1.3 Prelucrarea informaiei ........................................ 5 1.4 Informatica ......................................................... 5 1.5 Momente de referin .......................................... 7 1.6 Informatica medical ......................................... 10 2. CALCULATORUL NUMERIC PRINCIPII ............17 2.1 Reprezentarea informaiilor numerice ................ 19 2.2 Reprezentarea informaiilor nenumerice ............ 22 2.3 Operaii logice ................................................... 24 2.4 Codificarea binar a informaiei grafice .............. 26 2.5 Structura i funcionarea calculatorului numeric ................................................................... 27 2.6 Mic istoric ......................................................... 36 3. DISCUL MAGNETIC. ORGANIZAREA INFOR-MAIEI. FIIERE ...................................................42 3.1 Structuri de date ............................................... 44 3.2 Structuri de date interne ................................... 45 3.3 Structuri de date externe ................................... 45 3.4 Discul dur (hard disk) ....................................... 46 4. SISTEME DE OPERARE. DOS. WINDOWS. ..........50 4.1 Ce este un sistem de operare ............................. 50 4.2 DOS .................................................................. 51 4.2.1 Comenzi ........................................................ 52 4.2.2 ncrcarea sistemului de operare DOS ........... 67 4.2.3 AUTOEXEC.BAT ........................................... 69 4.2.4 CONFIG.SYS ................................................ 70 4.3 WINDOWS ........................................................ 71 5. INTERNET ........................................................90

  • iv

    6. HTML ...............................................................99 6.1 Planificarea unui sit ........................................ 101 6.2 Proiectarea i crearea coninutul sitului .......... 102 6.3 Organizarea coninutului sitului ...................... 103 6.4 Crearea paginilor sitului .................................. 103 6.5 Alegerea unui nume de domeniu ..................... 103 6.6 Gsirea unei gazde pentru sit .......................... 104 6.7 Instalarea i ntreinerea sitului ...................... 105 6.8 Promovarea sitului .......................................... 105 6.9 HTML .............................................................. 106 7. VIRUSURILE INFORMATICE ...........................126 8. ALGORITMI. LIMBAJE DE PROGRAMARE........140 8.1 Algoritm .......................................................... 140 8.2 Program ......................................................... 141 8.3 Simboluri grafice ............................................. 144 8.4 Structuri de control ......................................... 147 8.5 Enunuri de ciclare ......................................... 151 8.6 Limbajul BASIC. Exemple de programme ......... 154 8.7 MATLAB ......................................................... 163 9. PROBABILITI. PARAMETRI STATISTICI. DISTRIBUII ......................................................... 195 9.1 Probabilitate ................................................... 196 9.2 Variabile aleatoare .......................................... 197 9.3 Parametri statistici .......................................... 200 9.4 Teste statistice. Testul t. Analiza variaiei ........ 205 9.4.1 Teste unilaterale i bilaterale ....................... 208 9.4.2 Analiza varianei ........................................ 212 9.4.3 Variana n interiorul grupelor ..................... 213 9.4.4 Comparaie ntre testul t i analiza varianei ................................................................ 214 9.4.5 Exemple ...................................................... 214 9.5 Regresia liniar ............................................... 219 9.6 Programe pentru aplicaii de statistic medical ................................................................ 223

  • v

    10. BAZE DE DATE MEDICALE ............................ 229 10.1 Baze de date relaionale ................................. 233 10.2 Exemple ........................................................ 236 10.3 Baze de date orientate pe obiect .................... 243 10.4 Proiectarea i implementarea bazelor de date ....................................................................... 246 10.5 Aplicaii ale bazelor de date n sntate ......... 249 ANEXE A1. HTML ............................................................ 283 Director WS1 ....................................................... 283 Director WS2 ....................................................... 284 Director WS3 ....................................................... 284 Director WS4 ....................................................... 285 Director WS5 ....................................................... 285 Director WS6 ....................................................... 286 Director WS7 ....................................................... 287 Director WS8 ....................................................... 288 Director WS9 ....................................................... 289 Director WS10 ..................................................... 290 Director WS11 ..................................................... 292 Director WS12 ..................................................... 293 Director WS13 ..................................................... 295 Director WS14 ..................................................... 297 Director WS15 ..................................................... 298 Director WS16 ..................................................... 300 Director WS17 ..................................................... 302 A2. MATLAB ......................................................... 305 Referine bibliografice ......................................... 306

  • vi

  • vii

    Cuvnt nainte Cartea urmrete n general cursul de Informatic medical de la Universitatea de medicin i farmacie din Craiova. Ea nglobeaz, n maniera de abordare, i n coninut experiena didactic pe care am acumulat-o nc din toamna anului 1990 cnd am nceput s predau informatica medical la Facultatea de Medicin din Craiova, constituind astfel prima disciplin de Informatic medical cu statut oficial din ar, moment n care de fapt a fost oficializat i transferat i n zona didacticului spre a fi diseminat, cu efecte multiplicatoare evidente, o activitate desfurat de mine fr ntrerupere, cu pasiune, nc din 1974, din perioada studeniei, cnd am descoperit vraja mecanismelor viului. n carte se regsesc lucrurile bune prezente n prima i a doua ediie a crii Informatica medical (Tr, 1997, 2006). Cartea beneficiaz de experiena mea didactic i de cercetare, mult mai mare acum, mai ales prin plusul de experien ctigat prin lucrul direct n cercetare tiinific i educaie att n Europa ct i n SUA. Demonstrm astfel faptul c un curs este un produs dinamic; el nu trebuie s stea pe loc, pentru c moare. De cte ori apare o nou carte, care distileaz ce este bun n precedenta i aduce ceea ce este nou, ea devine alt carte. n cteva ediii de acest fel ar trebui s nu mai recunoti o carte, ea este mereu alta, dar ceva rmne totui: spiritul ei, fluena, personalitatea. Scopul unei cri de acest fel este s ncercm s transmitem din realizrile noastre n munca didactic i de cercetare, s mprtim studenilor, dar i oricrui alt cititor, ceva din zbaterea gndului, din ceea ce am nvat n cursul unei munci continue, s-i ajutm s evite prin experiena noastr mcar unele din eecuri, i

  • viii

    mai ales s-i ajutm s ajung mai repede la succes. Scopul este s formm, mai mult dect s informm. Din acest motiv, spre deosebire de alte multe cri, aici nu sunt descrise pachete de programe, n detaliul lor. Acest aspect practic al activitii unui utilizator al calculatorului, nvarea folosirii calculatorului i a unor programe specifice, este rezolvat la noi n cadrul lucrrilor practice. Din acelai motiv, spre deosebire de alte orientri, nici nu ne-am propus s-i nvm pe studeni un limbaj anumit de programare n detaliu, ci mai ales ce este un limbaj, care sunt elementele logice, crmizile cu care poi construi apoi orice, cum abordm o problem, i care este calea pn ce ea ajunge s fie rezolvat de calculator. Elementele de baz, pe care le prezentm pentru mediul MATLAB, ntr-un mod sper plcut i abordabil, sunt utile oricui, chiar fr experien n programare, pentru a se narma cu un instrument de lucru pentru toat viaa. De ce am ales MATLAB? Pentru elegana, facilitatea de a-l aborda de la zero, viteza de nvare deosebit fa de alte limbaje, pentru interfaa sa grafic prietenoas i plcut, n fine, pentru eficiena sa. Este un limbaj potrivit pentru oricine, dei este un limbaj de nivel nalt. Prima parte a crii, este dedicat iniierii, n sensul lmuririi conceptelor de baz, formrii unui limbaj specific, construirii elementelor logice funcionale care s le permit cititorilor abordarea ulterioar a domeniului de pe un nivel superior. Acesta este i motivul pentru care cartea de fa apare n dou volume. Dup pregtirea pe care o face primul volum, volumul al doilea prezint domeniul informaticii medicale prin direciile sale specifice: achiziia i prelucrarea

  • ix

    biosemnalelor i imaginilor medicale mpreun cu noiuni de stereologie, diagnosticul asistat de calculator, modelarea asistat de calculator n medicin, sisteme informatice medicale, etc. Aa cum este conceput, volumul II ar trebui s fie interesant i pentru cititorul cu formaie tehnic, i s-i ofere dac nu soluii ale unor probleme, atunci mcar nite ci i instrumente de abordare. Pe lng justificarea structurii i funcionrii calculatorului numeric bazat pe principiul Von Neumann, adic a calculatorului curent folosit, incluznd clasa cea mai larg rspndit a calcula-toarelor personale, precum i lmurirea conceptului de sistem de operare, focaliznd pe Windows, volumul I aduce n discuie subiecte de mare utilitate: Internet, Virusurile Informatice, limbajul HTML, programarea calculatoarelor de la concept la rezolvarea concret a unor probleme, noiuni de statistic, baze de date. Sunt subiecte de utilitate n orice domeniu de activitate, cu att mai mult n domeniul medical. Personal am preferat totdeauna crile care, n loc de clasificri, ofer elemente logice. Sper s fi reuit ntr-o oarecare msur, ca prin aceast carte s stimulez ntrebri, mai mult dect s dau rspunsuri. Aa cum este greu s ncepi, este tot att de greu s i termini. A vrea s considerm c tot ce este scris aici sunt nite semine puse la ncolit, i dac mcar nite ntrebri vor rezulta, munca nu a fost degeaba. nseamn c voi fi reuit s dau i nite rspunsuri. Prof. Dr. Ing. Mihai Tr Craiova Ianuarie 2010

  • Mihai T Tr Profesor, Universitatea de medicin i farmacie din Craiova 2000 prezent Profesor Invitat, Instituto de Fisiologia, Lisboa, Portugal 2005 Profesor Invitat, Iowa State University, Ames, Iowa, USA 2002-2003 Profesor Invitat, Universitaet der Bundeswehr, Munchen, Germany 2001 Profesor Invitat, Instituto de Fisiologia, Lisboa, Portugal 2001 Research Fellow, Catholic University of Leuven, Belgium 1998-1999, Profesor Invitat, University of Patras, Greece 1996-1997 Lector invitat, University of Leeds, Leeds, England 1993 Cartea este destinat n primul rnd studenilor Facultii de Medicin, dar i oricror cititori cu o formaie netehnic, cu sperana c va reui s transmit acele cteva elemente de baz pentru a demistifica un instrument omniprezent acum, dar i destul de controversat: calculatorul, i un domeniu exploziv: informatica. n acelai timp, prin anumite elemente, ea util i celor cu formaie tehnic, prin abordarea unor subiecte de baz poate ntr-o alt lumin, ceea ce stimuleaz ntotdeauna legturi logice noi. Autorul

  • Informatic medical

    1

  • Mihai Tr

    2

    8. ALGORITMI. LIMBAJE DE PROGRAMARE. Rezumat Dac am reuit s demistificm pn acum calculatorul n structura sa i s contientizm c o main principial foarte simpl poate fi n stare s fac o multitudine de lucruri complicate fr a fi nevoii s-i modificm structura, este momentul s demistificm i aceast activitate prin care punem maina la treab: progamarea calculatorului. Fr s ne propunem abordarea n detaliu a unui limbaj de programare, lucru care ar depi obiectivele propuse de aceast carte, este credem foarte util s discutm unele aspecte ale drumului ntre o problem de rezolvat i rezolvarea sa efectiv cu ajutorul calculatorului numeric. Discuia este necesar i pentru a demistifica o activitate care, dei extrem de complex, este totui uman abordabil, de ctre oricine. Nu putem rezolva corect o problem (orice problem) fr s cunoatem foarte bine datele iniiale, scopul i fr a dispune de o cale logic de rezolvare, care s cuprind toi paii logici necesari. 8.1. Algoritm Aceast secven finit de operaii (toi paii logici necesari pentru a soluiona problema), ordonat i complet definit, care pornind de la date (intrri) produce rezultate (ieiri) este un algoritm. Un algoritm are mai multe atribute eseniale: s fie bine definit, deci riguros i fr ambiguitate;

  • Informatic medical

    s fie descris exact; s fie efectiv, adic s rezolve problema ntr-un numr finit de pai; s fie universal, adic s permit rezolvarea unei clase de probleme. Deci rezolvarea unei probleme implic obligatoriu rezolvarea ei logic, construirea algoritmului, urmnd ca, n cazul n care dorim, sau suntem obligai de complexitatea ei, s o rezolvm cu ajutorul calculatorului, s i-o transmitem acestuia spre rezolvare sub form de program folosind n acest scop un limbaj de programare (Figura 8.1.1).

    Figura 8.1.1. De la problem la soluia ei, drumul trece prin construirea algoritmului i transcrierea lui ntr-un limbaj de programare, astfel nct s poat fi executat de calculator.

    Prin urmare programul nu este altceva dect secvena de aciuni necesare pentru rezolvarea problemei, codificate ntr-un anumit fel astfel nct s-l neleag calculatorul. Tot aa transpunem noi n viaa de zi cu zi aciunile noastre n limbaj natural. 8.2. Program Un program este o unitate software, o unitate de execuie capabil s-i prelucreze datele fiind dependent numai de sistemul de operare.

    3

  • Mihai Tr

    4

    Un sistem de programe este o unitate software constituit din mulimea programelor n cadrul unei aplicaii, relaiile dintre ele fiind determinate de intercondiionarea prelucrrilor. Odat construit algoritmul, pasul urmtor este transpunerea lui ntr-un program, numit program surs mai apropiat de modul de comunicare uman, urmnd translatarea programului n instruciuni-main, accesibile calculatorului, astfel nct acesta s poat rezolva efectiv problema. De exemplu, fiind dat ca problem rezolvarea ecuaiei de gradul I, programul scris de noi ntr-un limbaj de programare, de exemplu MATLAB, este program-surs, iar prin intermediul unui interpretor, mediu de programare (MATLAB n acest caz) sau a unui compilator (dac programul ar fi fost scris n FORTRAN sau PASCAL) acesta este transformat n cod-main, instruciuni-main pe care calculatorul le "nelege " i le execut. Ca i limbajele naturale, limbajele de calculator (artificiale) au un vocabular i un set de reguli (gramatic). Elemente ale unui program: CARACTERUL - este cea mai mic unitate structural a unui program; ca exemplu caracterele alfanumerice, numerice, speciale. TOKEN-ul - const dintr-un caracter sau grup de caractere; de exemplu identificatorii; pentru rezolvarea ecuaiei de gradul I folosim variabilele A, B, X.

  • Informatic medical

    5

    Mai folosim cuvinte-cheie: IF,THEN. EXPRESIA - are o mare varietate, ea compunndu-se din variabile i constante unite prin operatori: A=0 este un exemplu de expresie. ENUNUL (instruciunea): - declarativ, descrie datele asociate unui program; - executiv, descrie operaii de executat asupra unor date. Putem defini acum un program ca o mulime de enunuri: enun structurat, care include alte enunuri: IF A==0 THEN B==C enun compus: BEGIN BLOCUL - delimiteaz domeniul de valabilitate al identificatorilor, nct ei nu au aceeai semnificaie n tot programul (de exemplu n PASCAL): BEGIN integer X,Y; BEGIN real A; BEGIN boolean X,C; END END END PROCEDURA- (subrutina, subprogram) const dintr-o mulime finit de instruciuni.

  • Mihai Tr

    Ea poate fi apelat de mai multe ori n cadrul unui program. Putem defini programul de rezolvare a ecuaiei de gradul I ca procedur i-l putem chema ca atare ori de cte ori va fi nevoie s rezolvm o ecuaie de gradul I ntr-un program mai mare. PROGRAMUL - este o entitate ce poate fi executat pe un calculator. Dup ce ne-am fcut o idee despre componentele unui program, este momentul s ne ntoarcem la algoritmi, pentru a preciza construirea algoritmului pentru rezolvarea unei probleme i transpunerea ei pe hrtie. 8.3. Simboluri grafice n acest scop dispunem de un set de simboluri grafice:

    Figura 8.3.1. Legtur logic

    Simbolul din figura 8.3.1 leag blocurile, leag unele puncte ale unei scheme logice.

    Figura 8.3.2. Conector

    Simbolul din figura 8.3.2 este un conector pentru trecerea la alt pagin, n cazul programelor complexe a cror diagram logic se ntinde pe pagini multiple.

    6

  • Informatic medical

    Figura 8.3.3. Bloc delimitator (START, STOP)

    Simbolul din figura 8.3.3 (bloc delimitator) marcheaz nceputul i sfritul unei uniti program, de exemplu START, STOP.

    Figura 8.3.4. Bloc de intrare/ieire (include operaii de transfer de date

    ctre dinspre calculator)

    Figura 8.3.5. Bloc de calcul (include

    prelucrri efective ale datelor)

    Figura 8.3.6. Bloc de procedur

    (include proceduri).

    Figura 8.3.7. Blocuri de decizie

    (include salturi condiionate)

    7

  • Mihai Tr

    :=

    Figura 8.3.8. Semn de atribuire Folosind aceste simboluri, paii logici ai rezolvrii unei probleme - rezolvarea ecuaiei de gradul 1-

    0=+ bax cu soluia abx = , dac .0a se transpun grafic simplu ntr-o schem (diagram) logic (Figura 8.4.1).

    Figura 8.4.1. Diagrama logic pentru

    rezolvarea ecuaiei de gradul I 8.4. Structuri de control

    8

    Aa cum vedem n acest exemplu simplu, operaiile se nlnuiesc una dup alta, n ordinea precizat de algoritm prin diagrama logic, cu excepia unor

  • Informatic medical

    9

    puncte de salt, determinate prin structuri de control. Acestea constituie ntr-un limbaj de programare mijlocul prin care se realizeaz salturi (ramificri) condiionate i necondiionate. a. Cel mai simplu enun de control este GO TO (sari la) etichet. l gsim i n programul corespunztor diagramei din Figura 8.4.1, scris n limbajul BASIC. El realizeaz un salt necondiionat. 10 INPUT A, B 20 IF A = 0 THEN GO TO 60 30 LET X = - B / A 40 PRINT X 50 GO TO 70 60 PRINT " A = 0 " 70 STOP n acest mic program, instruciunea GO TO 70 ordon procesorului ca urmtoarea instruciune s fie cea de la linia 70, adic STOP. Cum vedem, n acest fel a fost srit linia 60. Instruciunea de salt GO TO nu este prezent n toate limbajele de programare. Dimpotriv, recurgerea la ea nu este recomandat, i este o reclam proast pentru un programator. Ce face de fapt programul de mai sus? Citete de la tastatur variabilele A, B (linia 10), dac A=0 atunci tiprete acest lucru i termin programul, dac A este diferit de 0, atunci calculeaz soluia ecuaiei X = - B / A (linia 30) i afieaz rezultatul. b. Enunul IF (dac), are dou forme:

  • Mihai Tr

    condiie enun 1 enun 2 IF ---------- THEN --------- ELSE --------- sau

    condiie IF ---------- THEN enun , crora le corespund schemele logice de mai jos (Figura 8.4.2). Obs. (THEN nseamn atunci, ELSE nseamn altfel).

    Figura 8.4.2. Salturi condiionate IFTHEN (stnga) i IFTHEN ELSE (dreapta). Sgeile indic fluxul

    normal al programului.

    10

    n cazul lui IF THEN ELSE, n funcie de ndeplinirea condiiei fluxul programului este ndreptat spre un enun (Enun 1) sau altul (Enun 2) ceea ce face aceast instruciune de salt condiional mult mai puternic dect forma simpl

  • Informatic medical

    11

    IF THEN. n limbajul MATLAB, THEN lipsete, astfel nct dup condiie urmeaz direct instruciunea care trebuie executat n cazul ndeplinirii condiiei. Remarcm tendina de simplificare a limbajelor, important pentru a lsa gndirea programatorului liber pentru a focaliza pe rezolvarea problemei, nu pe amnunte de programare. n MATLAB exist instruciunea ELSEIF, care, urmnd repetat dup un IF, implic testarea mai multor condiii. Vom reveni la aceste amnunte n continuare, cnd ne vom ocupa de MATLAB. c. Enunul CASE (enun n PASCAL ) :

    enun expresie ntreag ------- CASE ------------------- OF

    lista enunuri

    END Exemplu : CASE i OF e1 e2 . . en END n acest exemplu, dac i=1 se execut instruciunea e1, dac i=2 se execut instruciunea e2, .a.m.d. Iat un alt exemplu: var i : integer. case i of

  • Mihai Tr

    o : x : = o 1 : x : = sin(x) 2 : x : = cos(x) 3 : x : = exp(x) end. Cu explicaia de mai sus, este clar c n funcie de valoarea lui i se execut una din instruciunile corespunztoare valorii lui.

    Figura 8.4.3. Diagrama logic pentru CASE

    Diagrama logic pentru enunul CASE este dat n Figura 8.4.3. Enunul CASE s-ar exprima ntr-o formulare cu IF astfel (n BASIC): IF i=1 THEN e1 ELSE IF i=2 THEN e2 . . ELSE IF i=n THEN en Vom vedea n continuare principiul de ciclare, cel care d cu adevrat for calculatorului. Fora acestei maini const tocmai n posibilitatea de a

    12

  • Informatic medical

    face repetat aciunile necesare, cu mare vitez. 8.5. Enunuri de ciclare Calculatorul este cu att mai preios n cazuri n care o operaie trebuie executat repetitiv. n acest scop exist enunuri de ciclare n aproape toate limbajele de programare. Instruciunile din corpul ciclului se execut repetitiv, de n ori, adic pn cnd variabila de ciclare i iniializat cu 1 la nceput, ia valoarea n specificat (Figura 8.5.1).

    Figura 8.5.1. Diagrama logic pentru instruciunea de ciclare FOR...NEXT (n BASIC), FOREND (n MATLAB). Definirea ciclurilor (bucle n care o secven de operaii se execut repetitiv, de un numr de ori, sau pn cnd este ndeplinit o anumit condiie) necesit evaluarea unei condiii pentru a determina momentul transferului controlului n afara ciclului, 13

  • Mihai Tr

    adic ieirea din ciclu - n exemplul de mai sus (Figura 8.5.1) se evalueaz dac variabila de ciclare i a ajuns la valoarea programat n. O form simpl (n BASIC) este : FOR (pentru)...NEXT (urmtorul) FOR i=1 TO 20 enun NEXT I ntr-o alt form (Figura 8.5.2) WHILE Condiie DO enun , sau n traducere liber: "Execut enunul e, ct timp este adevrat condiia C". Dup cum vedem, ntr-un ciclu WHILE numrul de pai nu este cunoscut; el va fi determinat de momentul ndeplinirii condiiei C.

    Figura 8.5.2. Diagrama logic pentru instruciunea

    de ciclare WHILE Condiie DO enun.

    14

  • Informatic medical

    15

    n cazul unor programe mai complexe este util crearea unor subprograme. n MATLAB acestea se numesc funcii (function). Acestea permit reducerea efortului de programare prin reutilizarea lor de oricte ori este necesar, prin controlul mai eficace al programelor, permit extinderea limbajelor prin definirea de noi enunuri, noi funcii intrinseci, i modularizarea programelor. Altfel spus, odat definit o astfel de funcie, ea poate fi reutilizat ca o unealt disponibil. Altfel, ea ar trebui rescris de fiecare dat cnd este necesar. n felul acesta programele devin mai simple i mai uor de scris, de depanat i de gestionat. Cu elementele prezentate mai sus clare, considerm c oricine poate aborda nvarea efectiv a unui limbaj de programare specific, oricare ar fi el. Desigur ntre diferitele limbaje de programare sunt i diferene principiale i structurale, dar totui ceea ce le leag pe toate este logica uman i unele mecanisme fundamentale, ca cele pe care tocmai le-am prezentat. n materie de limbaje de programare, funcioneaz acelai principiu care este valabil n limbajele naturale: cu ct tii mai multe, cu att mai uor nvei un altul. Aa cum ai vzut, fa de limbajul natural pe care-l folosim zi de zi n comunicarea uman, limbajele de programare a calculatoarelor sunt primitive, adic simple i la ndemna oricui s le nvee i s le foloseasc - sunt srace n vocabular i cu o gramatic foarte simpl.

  • Mihai Tr

    16

    8.7. MATLAB Rezumat Pentru cei interesai, pentru studeni, cadre didactice, doctoranzi, cercettori, prezentm ca introducere lucrativ i direct orientat practic un limbaj de programare remarcabil, a crui nvare poate pleca de la zero, care ne poate duce la o eficien deosebit ntr-un timp scurt i care este nc inegalabil ca eficien n orice activitate uman n care experimentarea, modelarea, prelucrarea datelor trebuie s in pasul cu gndirea. Este vorba despre MATLAB (Mathworks, USA). Cred c cel mai plcut este s construim elementele de baz ale unui nou mediu de programare pornind de la un exemplu cu care, lucrnd, vom nva progresiv. Tabelul 8.7.1 conine temperaturile a zece pacieni, msurate n zece zile consecutive, la aceeai or. Vom nva s folosim mediul MATLAB folosind aceste date n diverse feluri.

    Tabelul 8.7.1. Temperatura a zece pacieni n zece zile consecutive (oC)

    Nr. Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 1 39.9 38.7 38.9 38.2 38.5 37.8 38.2 37.7 2 38.3 38.5 37.9 37.6 38 37.7 37.1 36.9 3 37.9 37.8 38.1 37.6 37.5 37.6 37.3 37 4 38.1 37.7 38 37.4 37.3 37.3 37 36.8 5 37.8 37.6 37.9 37.2 37.4 37.1 36.9 36.7 6 39.3 38.5 38.8 38.1 37.8 37.4 37.1 36.9 7 37.4 37.6 37.3 37.2 37.1 36.9 37 36.7 8 38.2 38.3 38.1 37.7 37.8 37.3 37 36.5 9 40 39.6 39.4 39.5 39.1 38.7 38.3 37.9

    10 39.1 38.5 38.2 38.4 37.9 37.5 37.2 37

  • Informatic medical

    Dar pentru nceput s vedem cum ajungem la MATLAB. Desigur avem nevoie de un calculator n care MATLAB s fie instalat. Dac ne uitm pe ecran (desktop) pe un calculator pe care s-a instalat mediul MATLAB, vom vedea iconul din figura 8.7.1.

    Figura 8.7.1. Iconul MATLAB cu versiunea 6.5. Intotdeauna apare versiunea curent instalat.

    Figura 8.7.2. Fereastra MATLAB. Observai

    fereastra de lucru n dreapta

    17

  • Mihai Tr

    18

    (Command Window). Lansnd aceast aplicaie, ca pe orice program, cu dublu click pe butonul din stnga al oarecelui, MATLAB se va activa ntr-o fereastr (Figura 8.7.2). n dreapta ei este fereastra de lucru, iar n stnga spaiul de lucru, respectiv istoria comenzilor folosite, n ordine. S remarcm simbolul

  • Informatic medical

    obinuii s gndim matricea ca tablou dreptunghiular, cu mai multe linii i mai multe coloane. Un tabel este un astfel de tablou. Liniile, respectiv coloanele unei matrici sunt vectori. S scriem n continuare n fereastra de comand (Figura 8.7.3):

    Figura 8.7.3. Scrierea ca vector a unui ir de date. plot(p1)

    19

  • Mihai Tr

    Rezultatul este generarea unei figuri (Figure No.1) ntr-o fereastr independent (Figura 8.7.4). Ea conine graficul temperaturilor pacientului p1 (Figura 8.7.4). Iat ct de puternic este interfaa grafic n MATLAB. Cine tie ct munc de programare nseamn reprezentarea chiar a unui grafic simplu, va aprecia din acest exemplu simplu, elegana MATLAB-ului.

    Figura 8.7.4. Reprezentarea grafic a vectorului p1, prin instruciunea plot(p1)

    Dac vom rescrie acum datele n vectorul p1 separate prin punct i virgul (;) rezultatul este

    20

  • Informatic medical

    generarea unui vector coloan. Prin urmare, scrierea datelor separate prin spaiu sau virgul genereaz un vector linie, pe cnd scrierea lor separate prin ; genereaz un vector coloan (Figura 8.7.5). S chemm acum ultima linie de comand (Figura 8.7.6) folosind tastele sgei verticale, adugnd ; la sfritul ei i vom constata c tasta ENTER nu mai are ca efect dect apariia prompterului. Vectorul p1 nu mai este afiat.

    Figura 8.7.5. Scrierea datelor ca vector coloan.

    Prin urmare semnul ; la sfritul unei linii de comand blocheaz afiarea rezultatului comenzii.

    Figura 8.7.6. Linia terminat cu ;

    blocheaz afiarea rezultatului.

    21

  • Mihai Tr

    22

    Acesta este un mecanism simplu dar puternic prin care putem afia pe ecran numai ceeea ce ne este necesar n cursul dezvoltrii sau desfurrii unui program. Pentru a transforma un vector linie ntr-un vector coloan i invers, nu trebuie s rescriem de fiecare dat vectorul. Este suficient s scriem: p1 Apostroful dup numele vectorului semnific operaia de transpunere, adic inversarea liniilor cu coloanele, deci transformarea vectorului linie n vector coloan i invers. ncercai! Scriei

    p1t=p1,

    apoi

    p1t

    (aici p1t este noul nume pentru vectorul transpus). n felul acesta am transpus succesiv vectorul, obinnd ba vector linie, ba vector coloan. Ne jucm cu vectorii cum vrem, i ne-am i familiarizat bine cu felul n care scriem datele n MATLAB. Procednd asemntor, sa scriem acum datele din tabel n vectori linie succesivi p2, p3, ..., p10, aa cum am procedat i pentru p1. Scriem apoi:

    matp=[p1; p2; p3; p4; p5; p6; p7; p8; p9; p10]

  • Informatic medical

    Rezultatul este generarea unei matrici dreptun-ghiulare cu numele matp, cu 10 linii (ci pacieni sunt) i 8 coloane (n cte zile s-a msurat temperatura). Iat c am organizat toate datele ntr-o matrice (tablou bidimensional), de dimensiune (10, 8) zece linii i opt coloane folosind ca linii vectorii p1, ..., p10. Putem verifica acest lucru cu o instruciune size(matp) ca n figura 8.7.7 rspunsul este ans (answer) afiat pe loc.

    Figura 8.7.7. Instruciunea size ().

    Avnd matricea la dispoziie, desigur putem oricnd selecta din ea ce vector sau dat individual dorim. Dac vrem s extragem vectorul p3 (temperaturile celui de al treilea pacient):

    p3=matp(3,:)

    adic linia 3, i toate elementele de pe acea linie.

    23

  • Mihai Tr

    Dac dorim numai elementul 4 din linia 3 (temperatura lui p3 din ziua a patra) scriem:

    matp(3,4) i astfel am localizat exact ceea ce dorim. Iat cum putem ncapsula datele ntr-o matrice n MATLAB, i desigur putem extrage de acolo orice atunci cnd este nevoie. Pentru a obine dimensiunea unui vector exist instruciunea length(vector). Figura 8.7.8 ne arat cum obinem dimensiunea (lungimea) vectorului p3 n dou feluri, cu length i cu size. Cnd folosim size desigur obinem i numrul de rnduri, n cazul acesta 1.

    Figura 8.7.8. Length i size, aplicate unui vector.

    Dorim s vedem acum evoluia n timp a temperaturilor celor zece pacieni, pe acelai grafic. 24

  • Informatic medical

    Este cunoscut dificultatea de programare a reprezentrilor grafice n alte limbaje. Noi am vzut deja ct de simplu am realizat o reprezentare grafic a unui vector n MATLAB (Figura 8.7.4). S scriem acum instruciunea plot(matp')

    Rezultatul se vede n figura 8.7.9. i anume graficul temperaturii tuturor pacienilor n cele 8 zile.

    Figura 8.7.9. Reprezentarea grafic a temperaturii tuturor pacienilor p1, ..., p10.

    25Pe axa x sunt numerotate zilele, desigur de la 1, pe

  • Mihai Tr

    axa y sunt reprezentate temperaturile. Fiecrui vector i este alocat automat o anumit culoare.

    Dac reprezentm vector cu vector, programul ar fi: plot(p1); hold on; plot(p2); plot(p3); . . plot(p10);

    Figura 8.7.10. Putem controla vectorii individual. Adugm culoare i markeri.

    26

  • Informatic medical

    Toate graficele din figur ar fi albastre. Pentru a diferenia vectorii mai nvm ceva. Iat cum adugm culoare dup dorin (Figura 8.7.10). Cum am generat acest grafic ntr-o alt fereastr? Simplu, am scris figure(2) i astfel am comandat generarea unei figuri noi. Apoi urmeaz desenarea fiecrui grafic (corespunztor unui pacient) preciznd i culoarea dorit (Figura 8.7.11):

    Figura 8.7.11. Graficul complet, cu titlu, etichete de axe i gril.

    figure(2); hold on; plot(p1, 'b-'); 27

  • Mihai Tr

    plot(p2, 'r+-'); plot(p3, 'mo-'); plot(p4, 'c*-'); hold off; Ai reinut c pentru a desena toi vectorii n aceeai figur am folosit instruciunea hold on, care are tocmai acest rol, de a suprapune grafice n aceeai figur. Cnd am terminat acest lucru, scriem hold off i acest mod nceteaz. tim acum destul de multe despre grafice. Totui, lipsesc unele amnunte: graficul nu are titlu, axele nu sunt etichetate, graficul nu are gril. Iat cum putem face acum graficul frumos, complet i informativ (Figura 8.7.12) ca n figura 8.7.11.

    Figura 8.7.12. Cum putem completa graficul cu titlu, etichete pe axe, gril.

    Tot ce am fcut pn acum, am fcut scriind de fiecare dat comanda potrivit. Dac vrem s facem i mine acelai lucru, va trebui s-o lum de la capt, adic aceeai munc plictisitoare i consumatoare de timp i energie, scriind i lansnd comand dup comand. Dac scriem (folosind un editor simplu, de exemplu 28

  • Informatic medical

    Notepad) instruciunile folosite, ca mai sus i salvm fiierul pe disc cu numele progs1.m, vom fi transformat succesiunea de instruciuni ntr-un program de sine stttor, care va putea fi citit i lansat oricnd n execuie, cu simplul efort de a-i scrie numele progs1 urmat de apsarea tastei ENTER. Graficul va aprea instantaneu n figura 2 (vezi figura 8.7.13).

    Figura 8.7.13. Lansarea unui program numai prin apelarea numelui su.

    Un program nu este altceva dect o succesiune de instruciuni n forma cea mai simpl, desigur putem gndi c i o singur instruciune este un program.

    29

  • Mihai Tr

    30

    Iat mai jos, listat programul nostru progs1.m cu efect figura 2 din figura 8.7.13. % progs1.m % un program simplu % vectorii temperaturilor celor 10 pacienti p1=[39.9 38.7 38.9 38.2 38.5 37.8 38.2 37.7]; p2=[38.3 38.5 37.9 37.6 38 37.7 37.1 36.9]; p3=[37.9 37.8 38.1 37.6 37.5 37.6 37.3 37]; p4=[38.1 37.7 38 37.4 37.3 37.3 37 36.8]; p5=[37.8 37.6 37.9 37.2 37.4 37.1 36.9 36.7]; p6=[39.3 38.5 38.8 38.1 37.8 37.4 37.1 36.9]; p7=[37.4 37.6 37.3 37.2 37.1 36.9 37 36.7]; p8=[38.2 38.3 38.1 37.7 37.8 37.3 37 36.5]; p9=[40 39.6 39.4 39.5 39.1 38.7 38.3 37.9]; p10=[39.1 38.5 38.2 38.4 37.9 37.5 37.2 37]; %concatenam vectorii in matricea temperaturilor matp matp=[p1; p2; p3; p4; p5; p6; p7; p8; p9; p10]; figure(2); hold on; plot(p1, 'b-'); plot(p2, 'r+-'); plot(p3, 'mo-'); plot(p4, 'c*-'); hold off; title('Temperaturi p1, p2, p3, p4'); xlabel('Ziua'); ylabel('Grade Celsius'); grid on; S remarcm c, odat cu citirea programului, se citesc i datele, care n mod comand ar trebui reintroduse, proces dificil i plictisitor. n programul de mai sus s observm nite linii

  • Informatic medical

    31

    care ncep cu semnul % - acestea sunt linii de comentariu, care nu au nici o semnificaie pentru calculator, dar sunt importante pentru noi deoarece ne lmuresc ce am fcut acolo. Un programator bun comenteaz fiecare linie de program pe care o scrie. Vedem c numele programului este n ntregime la latitudinea programatorului. El este urmat de extensia .m specific pentru MATLAB. n acest fel MATLAB tie c este vorba de un fiier care conine program i nu altceva. Dup ce am realizat deja un program cu care tim s facem grafice frumoase, suntem acum n msur s explorm mai n detaliu limbajul MATLAB pentru a-i nelege simplitatea i fora. i MATLAB lucreaz cu expresii matematice ca i celelalte limbaje de programare, dar spre deosebire de majoritatea acestor limbaje, n MATLAB aceste expresii implic la scar larg lucrul cu matrici. Matricea, cum am vzut, este important n MATLAB deoarece permite organizarea i accesarea convenabil a datelor. Spre deosebire de alte limbaje, n MATLAB nu este necesar declararea dimensiunii variabilelor, deoarece la ntlnirea unui nou nume de variabil se genereaz automat variabila respectiv i se aloc spaiul necesar de memorie. Numele unei variabile este o liter, urmat de un numr orict de mare de litere, cifre sau simboluri. Din acest numr orict de mare sunt oprite primele 31 de caractere. Nume de variabile n programul nostru sunt: p1, p2, ..., matp. MATLAB face distincie ntre literele mici i cele mari (case sensitive), de aceea trebuie s avem grij. n

  • Mihai Tr

    privina numerelor, MATLAB folosete notaia zeci-mal, cu punct zecimal opional i cu semn + sau -. De exemplu pentru numrul 123.87 se folosete i notaia tiinific cu litera pentru a specifica o putere a lui 10. De exemplu, 123.87 poate fi scris i 1.2387e2. Reprezentarea numerelor imaginare este realizat cu litera i sau j ca sufix.

    e

    Operaiile cu numere i variabile implic i utilizarea unor semne specifice, numite operatori (Tabelul 8.7.2).

    Tabel 8.7.2. Operatori n MATLAB. OPERATOR NUME SEMNIFICAIE

    + plus Plus + uplus Adunare unar - minus Scdere - uminus Scdere unar * mtimes nmulire matriceal .* times nmulire element cu element ^ mpower Ridicare la putere a unei matrice .^ power Ridicare la putere a elementelor

    unei matrice \ mldivide mprire, la stnga, a unei

    matrice / mrdivide mprire, la dreapta, a unei

    matrice . \ ldivide mprire, la stnga, pe

    componente ./ rdivide mprire, la dreapta, pe

    componente

    Pentru corectitudinea informaiei dm n tabel toi operatorii, dei pentru aplicaii curente nu sunt toi necesari. Este bine s-i nvai pe msur ce vei avea nevoie de ei.

    32

  • Informatic medical

    Cel mai plcut i eficient este s nvm lucrnd i mai ales, contrar practicii curente, greind. Din greeli nvm cel mai mult i cel mai bine. Este bine ca uneori s greii intenionat. Am vzut pn acum c n MATLAB putem reprezenta numere i c putem opera cu ele. Putem reprezenta i informaie alfanumeric.

    De exemplu,

    a=untext

    este o variabil alfanumeric, de fapt un ir (string).

    Figura 8.7.14 arat cum putem organiza informaia alfanumeric n vectori, i desigur i n matrici.

    Figura 8.7.14. Reprezentarea vectorial

    a informaiei alfanumerice 33

  • Mihai Tr

    Vedem acolo i faptul c spaiul (blanc) este o entitate n sine i c pentru a-l reprezenta apare i el ntre apostroafe, ca orice caracter alfanumeric. ncercnd s concatenm vectorii a i b pentru a forma o matrice, operaia este imposibil (Error) deoarece elementele de pe coloane trebuie s aib acelai numr de caractere. Dac reformatm b ca n figura 8.7.15, concate-narea este posibil i rezultatul se vede n aceeai figur n matricea mattext.

    Figura 8.7.15. Cnd elementele vectorilor au acelai numr de caractere

    concatenarea este posibil.

    34

  • Informatic medical

    35

    Desigur n acest caz operatorii valabili pentru informaie numeric nu mai sunt valabili pentru informaie alfanumeric. Exist desigur i operatori specifici pentru lucrul cu iruri alfanumerice, dar descrierea lor depete scopul acestei cri. Pentru a afia mesaje n cadrul unui program este util instruciunea disp (textul de afisat) care afieaz caracterul, sau textul aflat ntre apostroafe. Din aceeai clas face parte instruciunea input cu rol de a introduce date de la tastatur. De exemplu

    numenou = input('Numele pacientului','s')

    are ca efect introducerea numelui pacientului n variabila numenou. Observai parametrul 's' care-i spune c este vorba despre un ir alfanumeric (string) (Figura 8.7.16). Suntem acum n msur s facem un pas important n folosirea MATLAB-ului pentru a realiza lucruri mai utile. Dup ce am executat porgramul progs1.m care a avut ca rezultat desenarea figurii 2, datele sunt pstrate n memorie, pn la tergerea lor contient, deci le putem folosi. Ne propunem s folosim calculatorul pentru a ne alerta pentru care pacient temperatura a depit pragul de 39.0 o Celsius i n ce zi.

  • Mihai Tr

    Scriem un program progs2.m i-l executm (Figura 8.7.17). Iat, regsim i n MATLAB instruciunile for i if cu care calculatorul realizeaz aciuni repetitiv, respectiv testeaz anumite condiii i ia decizii n consecin.

    Figura 8.7.16. Folosirea instruciunii input.

    S comentm acest program simplu.

    Programul progs2.m: for i=1:size(matp,1) for j=1:size(matp, 2) if matp(i,j)>=39. disp('alerta! Temperatura depaseste 39.0 G Celsius') disp('pacient'); disp(i); disp('Ziua');

    36 disp(j);

  • Informatic medical

    end end end Prima bucl for...end (primul for pn la ultimul end) repet pentru toi pacienii (liniile matricii matp indexate de variabila i) ceea ce se ntmpl n a doua bucl for...end (al doilea for pn la penultimul end).

    37

  • Mihai Tr

    38

    Figura 8.7.17. Folosirea instruciunilor for...end i if...end.

    Bucla interioar (al doilea for pn la penultimul end) exploreaz n fiecare vector curent (i fixat) toate elementele (corespunznd celor opt zile) indexate cu j. Iat rolul variabilelor de indexare. Avantajul enorm al buclrii aciunilor const n faptul c acest mic program poate explora i o matrice cu 200 linii i 500 coloane, fr nici o modificare a sa. Limitele variabilelor i, j sunt stabilite de ctre size(matp,1) care citete automat cte linii are matricea matp ci pacieni - , respectiv de ctre size(matp,2) care citete cte coloane are matricea matp respectiv n cte zile s-a msurat temperatura -. Iat fora acestor structuri de programare. n program regsim instruciunea if...end (if i antepenultimul end) care testeaz pentru fiecare element al matricii dac temperatura depete 39.0 o Celsius i dac da, afieaz mesajul de alert urmat de numrul pacientului i de ziua cnd a fost depit temperatura: disp('alerta! Temperatura depaseste 39.0 G Celsius') disp('pacient'); disp(i); disp('Ziua'); disp(j);

  • Informatic medical

    39

    Am vzut mai sus cum folosim instruciunea condiional if...end pentru a testa anumite condiii i a genera aciuni n consecin. Aceast instruciune are o variant deosebit de puternic i anume if...elseif...end, prin a crei folosire putem testa condiii multiple, i prin urmare putem genera aciuni multiple n consecin. Ne propunem ca n cazul n care temperatura unui pacient depete 39.0 o Celsius s afim mesajul

    disp('alerta! Temperatura depaseste 39.0 G Celsius') disp('administrati antibiotic')

    iar n cazul n care este mai mic dect 37.5 o Celsius s afim mesajul

    disp('pacient in ameliorare'). Desigur n ambele cazuri afim numrul pacientului i ziua n care apare situaia respectiv. Figura 8.7.18 arat programul efectiv i rezultatul. Aceast instruciune accept multiple intrri elseif ntr-un corp if ...end i de aici fora sa. n exemplele de mai sus am folosit cicluri cu numr fix de pai, i anume numrul de linii respectiv numrul de coloane ale matricii matp. Vom vedea n continuare ce nseamn un ciclu cu numr necunoscut de pai, adic numrul de pai, de repetri ale anumitor aciuni depinde de ndeplinirea unei condiii.

  • Mihai Tr

    Figura 8.7.18. Folosirea instruciunii if ...elseif...end.

    40

  • Informatic medical

    Aceast condiie poate fi chiar o propoziie logic complex (Figura 8.7.19).

    Figura 8.7.19. Folosirea instruciunii while...end.

    Ne propunem ca pentru fiecare pacient s detectm ziua cnd temperatura sa scade sub 37.2 o Celsius i s marcm acest moment cnd pacientul ncepe s fie mai bine. Dac se ntmpl ca n cursul celor

    41

  • Mihai Tr

    42

    opt zile temperatura pacientului s nu scad sub aceast valoare, concluzia este c starea paci-entului este nc sub semnul ntrebrii, critic. Programul i rezultatele pentru primii doi pacieni sunt prezentate n figura 8.7.19. ncercai programul i vei vedea rezultatele pentru toi cei zece pacieni. ntlnim n program bucla while matp(i,j)>37.2 & j37.2:

    if matp(i,j)>37.2 & j==size(matp,2) disp('pacient inca in stare critica') disp(i) disp(j) else disp('pacientul incepe sa fie mai bine') disp(i) disp(j) end

  • Informatic medical

    43

    Observm c aceast condiie este intersectat (prin funcia logic I &) cu condiia j> help elfun

    iar, pentru a vizualiza lista funciilor avansate se poate tasta

    >> help specfun >> help elmat Nu ncheiem aceast scurt prezentare a mediului MATLAB fr s dm un exemplu care ilustreaz odat n plus posibilitile grafice deosebite ale acestui mediu. Figura 8.7.20 reprezint spaial (3D) evoluia temperaturilor celor 10 pacieni n 8 zile consecutiv.

  • Mihai Tr

    Iat programul care genereaz aceast reprezentare:

    figure(3); surfl(matp); shading interp; title('Evolutia temperaturilor'); xlabel('Pacienti'); xlabel('Zile'); ylabel('Pacienti'); zlabel('Temperatura'); Dup cum vedei, cu un efort mic, obinem foarte mult, datorit eficienei deosebite a cestui mediu de programare.

    Figura 8.7.20 Reprezentarea spaial (3D) a evoluiei temperaturilor celor 10 pacieni

    n 8 zile consecutiv.

    44

  • Informatic medical

    45

    n capitolele urmtoare vom reveni la MATLAB ca instrument de lucru n achiziia i prelucrarea semnalelor i imaginilor medicale, ceea ne va completa i mai bine viziunea asupra lui. Este momentul acum s menionm c MATLAB este un mediu deschis, care poate fi continuu mbogit chiar de ctre utilizator prin realizarea de funcii noi. n felul acesta au fost realizate biblioteci de funcii specializate pe anumite domenii de interes, acestea fiind incluse n MATLAB sub numele de Toolboxes (cutii cu scule). Prezentm n continuare o list actual pe domenii de interes, valabil pentru versiunea 7.14: Matematic i optimizare Optimization Toolbox Symbolic Math Toolbox Extended Symbolic Math Toolbox Partial Differential Equation Toolbox Genetic Algorithm and Direct Search Toolbox Statistic i analiz de date Statistics Toolbox Neural Network Toolbox Curve Fitting Toolbox Spline Toolbox Model-Based Calibration Toolbox Proiectarea i analiza sistemelor de control Control System Toolbox System Identification ToolboxFuzzy Logic Toolbox Robust Control Toolbox Model Predictive Control Toolbox

  • Mihai Tr

    46

    Prelucrare de semnal i comunicaii Signal Processing Toolbox Communications Toolbox Filter Design Toolbox Filter Design HDL Coder Wavelet Toolbox Fixed-Point Toolbox RF Toolbox Prelucrare de imagine Image Processing Toolbox Image Acquisition Toolbox Mapping Toolbox Data Acquisition Toolbox Instrument Control Toolbox Image Acquisition Toolbox Computational Biology Bioinformatics Toolbox SimBiology Modelare i analiz financiar Financial Toolbox Financial Derivatives Toolbox GARCH Toolbox Financial Time Series Toolbox Datafeed Toolbox Fixed-Income Toolbox Application Deployment MATLAB Compiler Excel Link MATLAB Web Server

  • Informatic medical

    47

    Baze de date Database Toolbox Sunt de remarcat Computational Biology i Bioinformatics Toolbox cu aplicaie direct n domenii de grani: biologie computaional i bioinformatic. Chiar i numai aceste dou prezene n acest context cred c justific ndemnul de a nva acest mediu de programare accesibil oricui. Cele prezentate mai sus sunt o introducere util chiar pentru cei fr nici o experien prealabil n programare, i nceputul necesar pentru a continua s se perfecioneze pn la nivelele cele mai nalte, indiferent de profesia lor. Bucuria acestui efort va fi o eficien sporit n ceea ce facei. n ncheiere, un sfat. Nu uitai, nici Roma nu s-a cldit ntr-o singur zi.

  • Mihai Tr

    48

    Tarata_infomed_2010_vI_cuprins.docTarata_infomed2010_Coperta.docAutorul

    Tarata_Informatica medicala_vol1_2010_8_PROGRAMARE.docMatematic i optimizareStatistic i analiz de dateProiectarea i analiza sistemelor de control Prelucrare de semnal i comunicaiiPrelucrare de imagineModelare i analiz financiarBaze de date