TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

Like dokumenter
TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Forelesningsinfo. Tider Mandag Tirsdag Onsdag Torsdag Fredag

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

ITGK - H2010, Matlab. Repetisjon

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

Læringsmål og pensum. v=nkiu9yen5nc

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

Øvingsforelesning i Matlab (TDT4105)

Tall, vektorer og matriser

Øvingsforelesning i Matlab (TDT4105)

TDT4105 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

Alternativ dag for teoriforelesning. Intro. Torsdag 12:15-14:00 R1

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

TDT4105 Informasjonsteknologi, grunnkurs

TDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 2. Iver Dihle Skjervum Vit.ass. ITGK

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Læringsmål og pensum. Oversikt

Øvingsforelesning TDT4105 Matlab

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF 1000 høsten 2011 Uke september

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet!

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

Øvingsforelesning 1 Python (TDT4110)

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Designe et program. TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Mål.

Læringsmål og pensum. Designe et program

Læringsmål og pensum. Hva er en variabel?

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Kapittel september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 7.

Datastrukturer (kap. 8)

Python: Variable og beregninger, innlesing fra tastatur utskrift til skjerm. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Kapittel 1 En oversikt over C-språket

Del 1 En oversikt over C-programmering

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

TDT4110 IT Grunnkurs Høst 2015

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Professor Alf Inge Wang

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

INF1000 : Forelesning 1 (del 2)

Kapittel august Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 2.

Øvingsforelesning i Python (TDT4110)

Løsningsforslag ukeoppg. 3: sep (INF Høst 2011)

Læringsmål og pensum. Oversikt. Læringsmål Forstå og bruke cell array og strukturer. Pensum Matlab, Chapter 8

Øvingsforelesning i Matlab (TDT4105)

som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

Litt Java-historikk. Litt Java-historikk. Ulike varianter for ulike behov. Litt Java-historikk. The Green Team

TDT4110 IT Grunnkurs Høst 2016

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Opphavsrett: Forfatter og Stiftelsen TISIP

Øvingsforelesning TDT4105 Matlab

En innføring i MATLAB for STK1100

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Hydrostatikk/Stabilitet enkle fall

Programmeringsspråket C

TDT4110 IT Grunnkurs Høst 2016

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

Java. INF1000 : Forelesning 2. Ulike varianter for ulike behov. Java Standard Edition (Java SE) Java:

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

INF 1000 (uke 2) Variabler, tilordninger og uttrykk

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

Øvingsforelesning i Python (TDT4110)

I dag skal vi se på. INF 1000 (uke 2) Variabler, tilordninger og uttrykk. Gruppene starter denne uken! Klart for første oblig

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Øvingsforelesning i Python (TDT4110)

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

TEMA: Kommunikasjon med Bruker INF1000 Plenumsgruppe 1, formatert utskrift

TDT4110 Informasjonsteknologi grunnkurs: Python: Repetisjon. Professor Alf Inge Wang

Visuell Programmering: Kom i gang med Processing

Læringsmål og pensum. if (be): else (not_to_be):

UNIVERSITETET I OSLO

Shellscripting I. Innhold

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Binærfiler versus tekstfiler

Mer om uttrykk, terminal I/O, forgreninger. Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

MAT-INF 1100: Obligatorisk oppgave 1

TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner. - 3rd edition: Kapittel Professor Alf Inge Wang

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

switch: - terminal-i/o (bruker-i/o)

Læringsmål og pensum. I/O - input-setningen. I/O disp-setningen

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler Utgave 3: Kap

Ditt og Datt i MATLAB. En introduksjon til Matlab og Simulink for ferske kybernetikk-studenter

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Transkript:

1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no

2 Frist for øving 1: Fredag 16. Sept. Noen oppstartsproblemer på ITGK-siden sist uke, men nå skal alle ha fått studass. Noen følte at det ble for mye nytt på en gang forrige uke... Håper alle har fått prøvd ut Matlab på egen maskin nå! 2

3 Husk fra foiler forrige uke Variabler Navn på noe vi vil huske Verdien lagres i datamaskinene minne Navn: Bokstav først, så fritt med bokstaver, tall og understrekings-tegn Tilordning av verdi a = 5 v = [1 2 3 4 5] m = [1 2 3; 3 4 5; 6 7 8] Hakeparenteser på Mac: [ = alt+8, ] = alt+9 Datatyper double (flyttall), int8 (heltall), string (tekst), double er default, holder oss til det inntil videre Datastrukturer Enkeltverdier, vektorer (lister), matriser (rader x kolonner) Operatorer +, -, *, /, ^ (opphøy) 3

4 Nytt i denne timen Mer om lister og tabeller, kap. 2.1 2.4 Matriser som innputt til funksjoner (2.2) Skalar- og Matrise-operasjoner (2.3) Matrisemultiplikasjon (2.4) Skrive programmer (Matlab-script), kap. 3.1 3.2 Innputt og utputt, kap. 3.3 3.4 4

5 De som ikke har installert enda: farm.ntnu.no Matlab desktop Mappe Editor Variabler Fildetaljer Kommandovindu Kommandohistorie 5

6 Programmering i Matlab Matlab kan brukes på følgende måter: Interaktiv modus: Skrive en og en instruksjon inne i en tolker i Matlab-programmet Lage Matlab-programmer: Lage en tekstfil med Matlab-kommandoer ved hjelp av en teksteditor, og bruke Matlab-programmet til å oversette programmet til maskinkode og kjøre programmet. 6

7 Interaktiv modus Skriv en linje med en kommando og få direkte respons Fungerer nesten som en kalkulator I interaktiv modus huskes alle variabler som brukes Får feilmelding hvis du har skrevet noe feil Egner seg ikke til å skrive store programmer! 7

8 Matlab som kalkulator Skriv inn kommandoer etter prompt-et: >>? Vanlig regning: Vi har de 4 regneartene, + - * / Eksponent, ^ Parenteser for å angi rekkefølge, () Desimalskilletegn Punktum (.) -- ikke komma (,) Konstanter pi (3.141592653589793) NaN (Not a Number, for eksempel 0/0) 8

9 Variabler og datastrukturer Et (brukerdefinert) navn på data Refererer til et sted i minnet der verdien lagres Starter med bokstav, fortsetter med bokstaver, tall eller understrek-tegn Skiller mellom små og store bokstaver En enkelt verdi: A = 5 En vektor (liste): V = [1 2 3 4 5] En matrise: M = [1 2 3; 4 5 6; 7 8 9] En tom vektor/matrise: [] 9

10 Datatyper Alle uttrykk og variabler har en assosiert type Må kjenne typen for å tolke (forstå) innholdet Matlab har mange typer Reelle tall (float) single, double Heltall Int8, int16, int32 uint8, (uten fortegn, bare positive tall) Tegn char Tekst String Logisk logical (true, false) double er standard (default) Vi kommer tilbake til datatyper 10

11 Datastrukturer Data som hører logisk sammen Alt i Matlab er tabeller (matriser) Rader og kolonner Kan plukke ut enkeltelementer V(3) tredje element M(1,2) første rad, andre kolonne A, A(1), A(1,1) (hva med rad1?) Matriseoperasjoner Transponering: M Matrisemultiplikasjon: M*M Elementvis multiplikasjon: M.*M 11

12 Enkel generering av lister Liste = [startverdi:inkrement:sluttverdi] A = [1:1:10] - liste med verdiene 1..10 B = [1:0.5:3] liste med 1.0, 1.5, 2.0, 2.5, 3.0 Det er ikke nødvendig med [] A = 1:1:10 Kan lage matriser på samme måten m = [1:5; 6:10; 11:15; 16:20; 21:25] 12

13 Indeksering av matriseelementer NB! Kolon (:) refererer til en hel rad eller kolonne. 13

14 Innebygde funksjoner, parametere Kvadratrot, sqrt(x) Tilfeldig tall, rand(x) Sinus, sin(radianer) Stolpediagram bar(sqrt(v)) Plotting plot(v, sqrt(v)) 14

15 Resultat 15

16 Matlab hjelp Kommandoen help <nøkkelord> gir en kort forklaring på kommandoer og funksjoner Eks: help sin Kommandoen doc <nøkkelord> åpner online- manualen (Octave sin er tekstbasert) Octaves HTML-manual http://www.gnu.org/software/octave/doc/interpreter 16

17 Script Kjedelig å skrive alle kommandoer (på nytt, hver gang) Lagrer sekvenser av kommandoer i fil <filnavn>.m Ren tekst (NB! Ikke Word) Kjører alle kommandoer på en gang (en etter en) Kjør scriptet: Innputt Skriv filnavnet i kommandovinduet (NB! Ofte mappe-relaterte problemer med å finne filen) Fra den innebygde editoren <variabelnavn> = input( Ledetekst ) Skriver ledetekst, venter på bruker-innputt, tilordner denne til variabel 17

18 Areal av sirkel % Dette er en kommentar % Beregner omkrets og areal av en sirkel Radius = input( 'Oppgi radius: ' ); Omkrets = 2*pi*Radius Areal = pi*radius^2 Kode i sirkelscript_forste.m 18

19 Output (disp og fprintf) Semikolon etter uttrykk hindrer output disp(<uttrykk>) er enklest, skriver ut verdien til uttrykk uten formatering disp(4*5) skriver ut 20 fprintf formatert utskrift fprintf( <formatstreng>, liste av verdier) %d plassholder for heltall %f plassholder for flyttall (med komma og desimaler) %c plassholder for ett tegn ( a etc.) %s plassholder for tekststreng ( NTNU ol.) \n spesialtegn for linjeskift fprintf('kommunenr %4d: %s\n', 1601, 'Trondheim') 19

20 Sirkelscript_andre.m %8.2f betyr: Feltbredde = 8 Antall desimaler = 2 Det kommer et flyttall 20