Introduktion till MATLAB, med utgångspunkt från Ada

Relevanta dokument
Exempel på ett litet Ada-program

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Föreläsning M: Introduktion till MATLAB

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

Beräkningsvetenskap föreläsning 2

Tentamen Grundläggande programmering

Föreläsning 7: Filer

Variabler och konstanter

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

Föreläsning 6: Introduktion av listor

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

2D1310 Programmeringsteknik Tentamen (1p) lördag 29 april 2000 kl 14-17

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

Föreläsning 1: Momstabellen i C++

Introduktion till MATLAB

KOMPLETTERANDE HEMTENTAMEN TDDB53

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Uppgift 1 (grundläggande konstruktioner)

MMA132: Laboration 2 Matriser i MATLAB

Introduktion till Matlab Föreläsning 1. Ingenjörsvetenskap

Introduktion till MATLAB Föreläsning 1

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

Föreläsning 4: Poster

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

Laboration 0: Del 2. Benjamin Kjellson Introduktion till matriser, vektorer, och ekvationssystem

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Instruktion för laboration 1

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram

TSBB14 Laboration: Intro till Matlab 1D

Matematisk Modellering

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

5 Grundläggande in- och utmatning

Matriser och vektorer i Matlab

Beräkningsverktyg HT07

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

En introduktion till MatLab

Matematisk Modellering

Föreläsning 3-4 Innehåll

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

2 februari 2016 Sida 1 / 23

F4. programmeringsteknik och Matlab

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Grundkurs Programmering

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Föreläsning 0: Introduktion av Ada

KOMPLETTERANDE HEMTENTAMEN 2 TDDB53

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Föreläsning 5: Introduktion av pekare

Arrayer (vektorer) Murach s: kap Elektronikcentrum i Svängsta AB

Sanningar om programmering

KOMPLETTERANDE HEMTENTAMEN TDDB53

Standardfilerna Input och Output

kl Tentaupplägg

Matematisk Modellering

Standardfilerna Input och Output. Filer... Filer... vanlig utbyggnad för ökad dynamik. Filer... filtyper

Matriser och vektorer i Matlab

Imperativ programmering. Föreläsning 2

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Arrayer. results

Användarhandledning Version 1.2

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

Pekare. Pekare. Varför använder vi pekare? Vad är en pekare? Pekare. Deklaration/initiering av pekare

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Textsträngar från/till skärm eller fil

Föreläsning 6: Metoder och fält (arrays)

TANA17 Matematiska beräkningar med Matlab

Introduktion till Jasmine 1.2 ODQL

Laboration: Grunderna i MATLAB

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Grundläggande datalogi - Övning 1

Introduktion till PHP

MMA132: Laboration 1 & 2 Introduktion till MATLAB

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Klassdeklaration. Metoddeklaration. Parameteröverföring

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

Pekare och arrayer. Indexering och avreferering

TAIU07 Matematiska beräkningar med Matlab

En kort text om programmering i C.

2D1339 Programkonstruktion för F1, ht 2003

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 4 december 2015 Sida 1 / 26

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Sanningar om programmering

Transkript:

Introduktion till, med utgångspunkt från Desktop-miljö som innefattar editor, kommandofönster, graffönster och mycket mer. Interpreteras Snabbt att testa kommandon Terminal + emacs + gnatmake Kompileras Rejäla kontroller innan körning Särskilt bra för: Utföra beräkningar (framför allt med matriser) Visualisera data Särskilt bra för: Säkra program Realtidssystem

Syntax Kod sparas i.m-filer Kod sparas i.adb-filer Inget kodskelett behövs. Satser körs som om de skrivits in i kommandofönstret. Kallas för Skript. Varje sats står på egen rad. procedure is begin end ; Satser avskiljs med ; ; undertrycker automatisk utskrift av satsers resultat.

Syntax Variabler behövs ej variabler skapas då de tilldelas. I = 7 S = 'Maria' F = 3.14 Mjuk typning, d.v.s. I : Integer; S : String(1..5) (deklarationer) I := 7; S := Maria ; F := 3.14; Hård typning F = I Helt ok. F är nu 7

Syntax IO disp(i) disp('hejsan') Put(I); Put_Line( Hejsan! ); I = input('mata in ett tal: ') Put( Mata in ett tal: ); Get(I); fprintf('%4d', I) fprintf('%6.3f', F) Put(I, Width => 4); Put(F, fore => 2, aft => 3, exp => 0); fprintf('%03d', I) skriver ut 007

Syntax if-satser if I == 7 end if I = 7 then end if; if I > 7 I == 14 elseif I ~= 7 && I ~= 8 else end if I > 7 or I = 14 then elsif I /= 7 and I /= 8 then else end if;

Syntax loopar for I = 1:10 end while I < 10 end finns ej break finns ej for I in 1..10 loop end loop; while I < 10 loop... end loop; loop... end loop; exit exit when I = 7;

Syntax Underprogram (1) finns ej procedurer, out-param. function Y=UP(X)... end Det som finns i returvariabeln (här Y) skickas tillbaka. procedure UP(X : out Integer) is... function UP(X : in Integer) return Float is Y : Float; begin return Y; end UP; Satsen return skickar tillbaka resultatet. Satsen return terminerar funktionen.

Syntax Underprogram (2) function Y=UP(X, Z, W)... end function Y=UP... end function UP... end function [Y X]=UP... end flera in-parametrar (Obs: inga datatyper) inga parametrar, anropas: var = UP ingen returvariabel, anropas: UP fler returvariabler, anropas: [var1 var2] = UP

Syntax Underprogram (3) Ja, på separata.m-filer. Samma namn som funktionen. Ja, men kräver att huvudprogrammet också är en funktion. Läggs efter huvudfunktionen. Nej Underprogram på separata.adbfiler. Samma namn som underprogrammet. Underprogram i samma fil som huvudprogrammet. Underprogram i paket.

Syntax Övrigt % markerar en kommentar -- markerar en kommentar. Skiljer på gemener och VERSALER. Skiljer ej på gemener och VERSALER. Ett större kodexempel finns att titta på på hemsidan (momstabellen i ). Testa help, t.ex. help disp

Syntax Fält (Vektorer) A = [1 2 3 4 5] eller A = [1, 2, 3, 4, 5] eller A = 1:5 A(1) = 99 disp(a(1)) type My_Array_Type is array (1..5) of Integer; A : My_Array_Type := (1, 2, 3, 4, 5); A(1) := 99; Put(A(1)); A(6) = 0 disp(a) vektorn utökas funkar fint! A(6) := 0; Krasch Put(A); Kompileringsfel

Syntax Vektorer (2) A = [1 ; 2 ; 3 ; 4 ; 5] A = [1 2 3 4 5] eller Skapar en kolumnvektor A = 1:5 Skapar vektorn [1 2 3 4 5] A = 1:2:10 Skapar vektorn [1 3 5 7 9] A = 5:-1:1 Skapar vektorn [5 4 3 2 1]

Syntax Vektorer (3) A = [] Skapar en tom vektor A = [B C] Slår ihop vektorerna B och C. A = [B ; C] Slår ihop vektorerna B och C, vertikalt. En skalär (ett enkelt tal) anses vara en vektor av längd 1!

Syntax Matriser Vektorer är egentligen bara ett specialfall av matriser (flerdimensionella fält). M = [1, 2, 3; 4, 5, 6; 7, 8, 9] eller Skapar matrisen M = [1 2 3 4 5 6 eller 7 8 9] 1 2 3 4 5 6 7 8 9 M = [1:3 ; 4:6 ; 7:9] M = zeros(3, 4) M = ones(3, 4) Skapar en 3x4 matris med endast nollor resp. ettor.

Syntax Matriser (2) M = eye(3) M = diag([1 2 3]) M2 = rot90(m) M3 = M2' Skapar 3x3 enhetsmatris: 1 0 0 0 1 0 0 0 1 Skapar diagonalmatris: 1 0 0 0 2 0 0 0 3 Roterar 90 grader medurs 0 0 1 0 2 0 3 0 0 Transponerar 0 0 3 0 2 0 1 0 0

Syntax Matriser (3) M = 1 2 3 4 5 6 7 8 9 M(r, k) Indexering, tar ut element på rad r och kolumn k. M(2:3, 2:3) Tar ut delmatrisen: rad 2 till 3 och kolumn 2 till 3: 5 6 8 9 M(end, end) M(1, 1:end) Tar ut elementet på sista raden och sista kolumnen: 9 Tar ut hela första raden: 1 2 3

Syntax Matriser (4) M = 1 2 3 4 5 6 L = length(m) Ger största dimensionen, d.v.s. 3. Användbart för vektorer. N = numel(m) Ger antal element, d.v.s. 6. S = size(m) Ger båda dimensionerna, d.v.s. S blir [ 2 3 ]. R = size(m, 1) C = size(m, 2) Ger antalet rader resp. antalet kolumner. R blir 2 C blir 3.

Syntax Matriser (5) v1 = 1 2 3 v2 = v1 * 2 v2 blir [2 4 6] v2 = v1 * v1 Fel! v2 = v1 * v1' v2 blir 14 v2 = v1.* v1 v2 blir [1 4 9] v2 = v1' * v1 v2 blir 1 2 3 2 4 6 3 6 9 v2 = v1./ v1 v2 blir [1 1 1] v2 = v1 / 2 v2 blir [0.5 1 1.5] v2 = sin(v1) v2 blir [0.8415 0.9093 0.1411]

Syntax Filer (Text) F = fopen('a.txt', 'w') fprintf(f, '1 2 3\n4 5 6\n') fclose(f) Open(F, Out_File, A.TXT ); Put_Line(F, 1 2 3 ); Put_Line(F, 4 5 6 ); Close(F); M = importdata('a.txt') Läsning från textfil M blir matrisen 1 2 3 4 5 6 Finns flera sätt. Läs mer på sidorna länkade från help fopen

Syntax Filer (Binär) M = 1 2 3 4 5 6 save('a.mat', 'M') Open(F, Out_File, A.BIN ); Write(F, M); Close(F); load('a.mat', 'M') Open(F, In_File, A.BIN ); Read(F, M); Close(F);