1 / 16

ITGK - H2010, Matlab

ITGK - H2010, Matlab. Repetisjon. Variabler og tabeller. Variabler brukes til å ta vare på/lagre resultater – Datamaskinen setter av plass i minne for hver variabel – En flyttallsvariabel tar 8 bytes i minne (default representasjon)

jericho-nen
Télécharger la présentation

ITGK - H2010, Matlab

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ITGK - H2010, Matlab Repetisjon

  2. Variabler og tabeller • Variabler brukes til å ta vare på/lagre resultater – Datamaskinen setter av plass i minne for hver variabel – En flyttallsvariabel tar 8 bytes i minne (default representasjon) – I Matlab blir alle variabler representert som matriser – Tekststrenger blir i Matlab representert som en matrise av enkelt karakterer – En variabel som lagrer bare en verdi er en 1x1 matrise i Matlab • Vi bruker whos for å finne størrelse og type på variabler • Vi kan bruke existfor å sjekke om en variabel er ledig • For å slette en variabel brukes clear <variabel> – Husk at bare clear sletter alle variabler

  3. Tilordning av variabler • Tilordning av enkelt variabel: x = sin(pi/2)+12 + y; % Resultat blir lagret i variabelen x • Opprettelse av lister og tabeller: A = [1:2:10]; % A blir [1 3 5 7 9]. B = [1 2 3 ; 4 5 6]; % Oppretter 2x3 tabell i B C = [1:0.5:3 ; 2:1:6]; % Oppretter 2x5 tabell i C, %Obs! Antall kolonner må være like. D(1:10,1:10) = 10; % Oppretter 10x10 tabell med verd.10 E = [1 2 3; 4 5 6; 7 8 9]; % Oppretter 3x3 tabell i E

  4. Om tabeller • Tabeller består av: – indeks: angir plassnummer i tabellen – element: innholdet i form av en verdi for en gitt indeks – tabellengde: maks antall elementer i tabellen

  5. Manipulere tabeller • Vi bruker size() og length() for å finne lengde av tabeller og lister • Man legger inn elementer eller endrer verdier på elementer i en tabell ved å bruke indeksen: A(3) = 7; % Tilordner element 3 i lista A verdien 7 E(2,2) = 5; % Gir elementet med indeks 2,2 verdien 5 disp(E(3,3)); % Skriver ut verdien til elementet med indeks 3,3 disp(E(2,:)); % Skriver ut andre rad i tabellen E disp(E(:,1)); % Skriver ut første kolonne i tabellen E disp(E(1,2:3)); % Skriver ut elementene fra 2 og 3 kollonne i rad 1

  6. Tilordning av variabler oginnebygde funksjoner • Funksjonen zeros lager en tabell av 0er: A = zeros(1,10); % Lager en 1x10 matrise av 0er B = zeros(5,5); % Lager en 5x5 matrise av 0er. Kan bruke zeros(5) • Funksjonen rand gir et tilfeldig tall mellom 0 og 1: x = rand()*50; % Et tilfeldig flyttall mellom 0 og 50 y = rand(2,3)*10; % 2x3 tabell av tilfeldige flyttall mellom 0 og 10 • Funksjonene floor og ceil runder av nedover og oppover: z = ceil(rand(10,1)*20); %10x1 tabell med heltall mellom 1 og 20 v = floor(rand()*5); % Heltall mellom 0 og 4 • Funksjonen round gir vanlig avrunding til nærmeste heltall

  7. Oppgaver • D=[1:4; 2:5; 3:6; 4:7] • Skriv kode for å sette element 15 til tallet 9 • Skriv kode for å skrive ut elementene 13-16 til skjerm • Skrive kode for å bytte elementene 5-7 til verdien 1 • Skriv kode for å skrive ut elementene 3,7, 10 og 11 • Skrive kode for å sette elementene 4, 8, 12, og 16 til 4, 3, 2, 1 • Skrive kode for å skrive ut elementene 1-3 og 5-7 til skjerm

  8. 2D plotting oversikt • plot(x,y,<farge>); – plotter på en prikk på punktet x,y med farge ’r’, ’b’, etc. – plot funksjonen brukes vanligvis på to lister av tall • bar(H,<farge>); – lager et søylediagram med ut ifra verdier i H med farge ’r’, ’b’, etc. – bar funksjonen brukes vanligvis på lister av verdier • grid on; % Gir rutenett • hold on; % Kan plotte flere plot oppå hverandre • title(’tittel’); % Gir overskrift på plottet • xlabel(’tekst’); % Tekst på x-aksen • ylabel(’tekst’); % Tekst på y-aksen

  9. Input fra tastatur • Tall fra tastatur til Matlab-variabelen tall: tall = input(’ledetekst’) • Viktig ved innlesing: – ledetekst er vanlig tekst som skrives ut til skjerm – det du skriver inn tolkes som et Matlab-uttrykk. Dvs. hvis brukeren skriver inn tekst vil man få feilmelding. • Ved innlesning av tekst kan man bruke: tekst = input(’ledetekst’,’s’)

  10. Disp • Standardfunksjonen for å skrive ut verdier til skjerm i Matlab heter disp • Denne er veldig begrenset i forhold til det som er vanlig i andre programmeringsspråk fordi den bare kan gjøre to ting – skrive ut en liste av tall – skrive ut en liste av tekst • Dette er slitsomt fordi man oftest vil gjøre begge deler, for eks. skrive ut noen tall og en forklaring på hva disse tallene er . . . – Skal vi bruke disp må vi “oversette” til det ene eller det andre. • Derfor blir ofte disp erstattet med printf (Matlab: fprintf(1,...)) når man har lært seg det

  11. Output til skjerm - disp • Vis innholdet av en variabel, tabell, tekststreng på skjerm ved å bruke: disp(variabel) % viser variabel på skjerm disp(tabell_variabel) % viser tabell på skjerm disp(’Skriver ut tekst’) % viser tekst på skjerm • Merk at kommandoen disp etterfølges av et linjeskift • Flere variabler kan skrives ut etter hverandre: disp(A), disp(B), disp(C) % Får linjeskift etter hver disp

  12. Alternativ: fprintf() • Funksjonen disp er tungvint for å blande utskrift av tekst og tall • Matlab har fprintf og fscanf som kan brukes til formatert utskrift uten problemene disp har • Den må ha filnummer som første argument • Skriving til skjerm kan gjøres ved å droppe filnummeret, eller med 1 som filnummer: • fprintf(‘Tekst som skal skrives ut \n’); • fprintf(1,‘Tekst som skal skrives ut \n’); • Funksjonen fprintf tar et argument som kan være en blanding av tekst som skal skrives ut og spesifikasjon av hvordan variable skalskrives ut

  13. Formatert utskrift… • Det er best å se på et konkret eksempel: >> x=10; y=1; >> fprintf(‘Verdien til x er %d og y er %d\n', x, y); Verdien til x er: 10 og y er 1 >> fprintf(‘Pi med 10 desimaler: %.10f\n’, pi); Pi med 10 desimaler: 3.1415926536 • Typebokstaver: d heltall x heksadesimalt tall f desimaltall uten e (fast form) e desimaltall med e+ eller e- (vitenskapelig notasjon) c en enkel bokstav s en tekststreng • Merk at fscanf ikke kan lese fra tastatur, så den er ikke så nyttig! • Men kan være ok for å lese inn ”formatert tekst” fra fil

  14. Oppgave • Lag tre variabler, x= 4, y=4.156, t=‘Hei’ • Skriv ut verdien til alle tre med fprintf slik: • X har verdi 4, y har verdi 4.156 og t har verdi Hei Husk: >> fprintf(‘Pi med 10 desimaler: %.10f\n’, pi); Pi med 10 desimaler: 3.1415926536 Typebokstaver: d heltall x heksadesimalt tall f desimaltall uten e (fast form) e desimaltall med e+ eller e- (vitenskapelig notasjon) c en enkel bokstav s en tekststreng

  15. Konvertering mellom tall ogtekststrenger • Bruk følgende for å gjøre om et tall til en tekststreng: tekst_variabel=num2str(tall_variabel) • Brukes typisk ved utskrift av variabler med disp: disp(['Verdien til x er ' num2str(x)]); • Bruk følgende for å gjøre om en tekststreng til et tall: tall_variabel = str2double(tekst_variabel) • For å sette sammen flere tekststrenger bruk: tekststrenger = strcat(S1,S2, …) tekst = strcat(’Kåre kjører ’,’ for fort ’,’ huff’)

  16. Skriving og lesing til/fra fil avenkelt variabler/tabeller • For å skrive en variabel A til tekstfil, bruk følgende: save(’-ascii’,’minfil.txt’,’A’) • For å lese fra tekstfil til en variabel B, bruk følgende: B= load(’-ascii’,’minfil.txt’) • Merk at save skal ha variabelen som en tekststreng (dvs. variabelnavnet innpakket i fnutter)

More Related