MATLAB Programplanlægning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 >>mit_program(‘ind.txt’.`ud.txt´) myconstants.m function.

Slides:



Advertisements
Lignende præsentationer
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
Advertisements

KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Symbolsk maskinsprog.
Intro Forelæsning 2 Linux install-party lør.14.sept kl – man. 14.okt – Kursets omfang :7,5 ECTS Kursussammensætning: forelæsning.
MATLAB Programplanlægning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2003 >>mit_program(`ud.txt´) myconstants.m function mit_program(iud)
MATLAB Afslutning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
MATLAB Programmering Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 d = size(s); for k = 1:d(1), for n = 1:d(2), if (s(k,n) < 0) r(k,n)
Multi-vejs hobe med ekstra bytes Foredrag: Claus Jensen Projektmedlemmer: Jyrki Katajainen, Fabio Vitale, Claus Jensen.
Anvendelser I Leg og spil.
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
MATLAB Programmering Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2003 d = size(s); for k = 1:d(1), for n = 1:d(2), if (s(k,n) < 0) r(k,n)
Compiler/fortolker struktur Mellem- kode Mellemk.- optimering Kode- generering Kode- optimering Lexikalsk- analyse Syntax- analyse Semantik- analyse -
Buttom-up parsning: Hvor er vi Mellem- kode Kald til Runtimesys. Mellemk.- optimering Kode- generering Kode- optimering Leksikalsk- analyse Syntax- analyse.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
Program Design – 4 Introduktion til PHP. Dagens lektion Hvad er PHP?  - og lidt historie Hvordan virker PHP? Grundlæggende PHP  Variable  Typer  Løkker.
W1b1 PC baseret analyse og simulering. w1b2 Definition Digital Elektronisk beregningsmaskine, der har intern hukommelse til lagring af program og mellem-regninger.
1 PC baseret dataanalyse og simulering Week2 A. 2 SAS input/output filer Inddata -textfil - SAS-program -textfil- SAS datasæt SAS system SAS listing -print.
1 JavaScript Lektion 6: Repetition i JavaScript Math TIDY Litteratur: JST lektion 10.
Per P. Madsen- Proces1 Algoritmer og datastrukturer Grundprincipper og analyse af algoritmer. MM1 Lister, stakke og køer. MM2 Træer, og Hash-tabeller.
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
MATLAB Programplanlægning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2003 >>mit_program(‘ind.txt’.`ud.txt´) myconstants.m function.
Ingeniørhøjskolen i Århus Slide 1 Newton approximation ”Oversæt” til algoritme - Step 5: Skriv kode - Step 4: Skriv pseudokode - Step 3: Specificér pre-
1 While Tæller-kontrolleret (eng.: counter-controlled) repetition For Steen Jensen, efterår 2013.
DATATYPER. For at tilpasse hvert felt i databasen til dets formål og dermed øge funktionalitet 1 bit er tilstrækkelig til at angive køn (0/1) men for.
Procestræ under afvikling af cp init login shell cp cp src dest.
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Paradigmer i Programmering 1. Program for idag : Funktioner og udtryk i SML : Øvelse : Frokost – 14.00: Deklarative.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Paradigmer i Programmering 1. Plan for kurset 4 x Mads R, 4 x Torben B, 2 x opgave MR: Funktionsprogrammering, SML TB: Logikprogrammering, Prolog Opgave:
Anvendelser I Leg og spil.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
Intro Siden sidst: evaluering på opgaver og virtuel kursus Kursussammensætning: forelæsning – læse – arbejde selvstændigt – newsgroup – øvelsestime – aflevering.
GP4, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 4 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
C#: Data Typer. 2 Nordjyllands Erhvervakademi Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies,
Tekst filer Tekstfiler opbygges normalt af linier, hvor disse ikke behøver at være samme længde. Når man skal arbejde med tekstfiler, ønsker man metoder.
Quiz 3.1. Quiz 1 – Assignment dIntProg, E14 Hvad er værdierne af x og y efter udførelse af følgende program? 1.x er 6, y er 3 2.x er 8, y er 5 3.x er.
MATLAB Indledning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2002.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
MATLAB Indledning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering9B.1 Fletning.
MATLAB Repetition og Udførelse af programmer Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 >>mit_modul minf.m … minf(a) … mit_modul.m.
MATLAB Indledning II Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005.
Type analyse i FunCalc / CoreCalc Baggrund og kontekst Formål Designovervejelser → løsning /arkitektur Strategi for implementering og afprøvning Resultater.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmeringfletning.1 Fletning.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
Multiple processer på web-site Web- server filer Kunde 1 Kunde 2 Kunde p1p2p internet.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Ændr 2. linje i overskriften til AU Passata Light AARHUS UNIVERSITET AU ARBITRARY PRECISION MICHAEL I. SCHWARTZBACH KRISTOFFER JUST ANDERSEN INSTITUT FOR.
Algoritmeskabeloner findOne, findAll, findNoOf, findSumOf Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder.
Embedded SW – C & picoBlaze
1587 Server - Blandet miljø Webintegrator HF1
”Avanceret” Programmering
Studiepraktik Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Programmering.
ROBOTTERNE KOMMER - OZOBOTTERNE.
Samspil mellem moderne sygepleje og højteknologi på operationsstuen Profiler, kompetenceniveauer og adaptiv kapacitet Erik Elgaard Sørensen, Professor,
Præsentationens transcript:

MATLAB Programplanlægning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 >>mit_program(‘ind.txt’.`ud.txt´) myconstants.m function mit_program(ind,ud) myconstants; data=readData(ind); % beregn … writeData(ud,result) function d=readData(infile) fid = fopen(infile,’rt’); … fclose(fid); function writeData(outfile,r) fid = fopen(outfile,’wt’); … fclose(fid); ER = ; %m Jordens radius …

MATLAB-maskinen Script » A = [9,7] ans = … » B = 25i ans = … … Matlab.exe Workspace A B Lager (memory) Procesenhed Program

Programstrukturer Et program definerer rækkefølgen for at udføre ordrer. sekvens ordre ; ordre … valg if ( ) … end; switch … gentagelse (iteration, løkke) for …, while … kald af underprogram (funktion) f( … ) afbrydelse break, return

Iteration (over søjler i vektor) FOR variable = expr, statements END for i = 1: 32, x(i) = i*0.2; y(i) = sin( x(i) ).^19; end for h = [1 2 3; 5 6 7], disp(h); end for k = [ ], y = sin( x ).^k; plot(x,y); end for m= 5, b = m; end

Generel Iteration WHILE expression, statements END % beregn kvadratroden af a % low = 0; high = a+1; while (high - low) > 2*eps, end; resultat = (high+low)/2; mid = (high+low)/2; if mid*mid > a, high = mid; else low = mid; end

Funktioner function y = sinus(x,k) % Beregn sin(x).^k y = sin(x).^k

MATLAB-maskinen Script » A = [9,7] ans = … » B = 25i ans = … » sinus(A,6) … Matlab.exe Workspace A B Lager (memory) Procesenhed Program

Funktionskald Script » A = [9,7] ans = … » B = 25i ans = … » sinus(A,6) … Matlab.exe Workspace A B function y = sinus(x,k) Workspace x init A k init 6 y init ?

Funktionskald -afslutning Script » A = [9,7] ans = … » B = 25i ans = … » sinus(A,6) … Matlab.exe Workspace A B function y= sinus(x,k) Workspace x init A k init 6 y = … ans = y

Rekursion function resultat = kvadratrod(a) % Beregn kvadratrod af a ved bisektion resultat = trin(0,a+1,a); function r = trin(low,high,b) % kvadratrod b er mellem low og high if (high - low) <= 2*eps, r = (high+low)/2; return; end; mid = (high+low)/2; if mid*mid > b, r = trin(low,mid,b); else r = trin(mid,high,b); end;

Opdeling af Hovedprogram Indlæsning -- d=readData(infile); Beregning -- res = … d … Udlæsning -- writeData(outfile, res); Hvorfor? Overskuelighed Fleksibilitet Separat Afprøvning

Indlæsning – med load function d=readData(infile) d = load(infile); afstande.txt % % Afstandsdata % A B P SB S % Pnr Pnr Pnr m m %

Lagring af data Matlab.exe Lager x: ‘afstande.txt ‘ x+12: … ’ function readData(infile,d) d =load(infile) Workspace – nametable infile: char 1,12 (x) d: double 27,5 (x+12)

Indlæsning med scanf I function d = readData(infile) fid = fopen(infile); if (fid == -1), error( … for c=1:5, fgetl(fid); end; d = fscanf(fid,'%f',[5,inf])’; fclose(fid); afstande.txt % % Afstandsdata % A B P SB S % Pnr Pnr Pnr m m %

Indlæsning med scanf II function d = readData(infile) fid = fopen(infile); if (fid == -1), error( … for c=1:5, fgetl(fid); end; d = []; while ~feof(fid), d = [d ; fscanf(fid,'%f',5)']; end; fclose(fid); Ikke at anbefale !

Lagring af data Matlab.exe Lager x: ‘afstande.txt x+12: 3 function d= readData(infile) … d = []; while ~feof(fid), d = [d ; fscanf(fid,'%f',5)']; end; Workspace – nametable infile: char 1,12 (x) fid: integer 1,1 (x+12) d: double 0, 0 d 1,5 d 2,5 d 3,5

Beregning function spred_pol(ind,ud) % beregner skøn for punktmæssig spredning på højde med polær måling % (Jensen 2002) % % ind afstande med 5 søjler % ud tekstfil med resultat af beregningen % spred_pol_param; readData(ind,d); S = d(:,5); s_S = sqrt(s_g^2 + (s_a*S/1000).^2 +s_c^2); % Jensen … writeData(ud,[d s_S v_beta s_T s_P s_H]);

Parametre spred_pol_param.m: parametre vedr. afstandsmåling, se (11.4) s_g=0.005; %grundfejl i meter( leica=0.002, sokkisha=0.005, Wild=0.001) s_a=0.003; %Afstandsafhængige fejl i meter % (lecia=0.002, sokkisha=0.003, Wild=0.001) s_c=0.005; %Centreringsfejl i meter

Beregning - fuldstændig S = d(:,5); s_S = sqrt(s_g^2 + (s_a*S/1000).^ 2 +s_c^2); % Jensen S_B = d(:,4); v_beta = s_r^2/n_H +(s_c*Omega./ S).^ 2 + s_r^2/n_H... +(s_c*Omega./ S_B).^ 2; % 11.5 s_T= sqrt(v_beta.^ 2.* (S.^2/Omega^2)); % 11.6 s_P= sqrt((s_S.^2+v_beta.*(S.^2/Omega^2))/2); % 11.3 s_H=sqrt(S.^2*s_V^2/(n_V*Omega^2)+(S.^2/(2*R)).^2*s_k^2... +s_sh^2+s_ih^2); % 6.4

Udlæsning fprintf(fid, '\n\nSkøn for punktspredning på højden ved polær måling\n\n'); fprintf(fid, 'Parametre vedr. horisontalretningsmåling:\n'); fprintf(fid, 'Spredning på retning målt med en sats s_r = %5.3f gon\n',s_r); fprintf(fid, 'Antal staster n_H = %5.3f\n',n_H); fprintf(fid, 'Centreringsspredning s_c = %5.3f m/km\n\n',s_c);

Formater The format specifier : % [- | + | 0] [Field Width][.Precision] Format Character "-" aligns output left (usually, it's right-aligned). "+" outputs a plus sign for positive numbers (usually, it is supressed). “0” outputs leading zeroes. The field width specifies the overall field length. The precision specifies the length of the fractional part for floating point numbers. If omitted, the default is 6. The format character determines the base type for the formatted values: "d": integer value in decimal format. "f": floating point value in fixed format (xxx.yyyyyy). "e": floating point value in scientific format (0.yyyyyye+zzz). "E": floating point value in scientific format (0.yyyyyyE+zzz). "s": String.

Og så … PRØV DET !