Gå til innhold

hjelp med programmering (matlab/octave)


Anbefalte innlegg

Hei. Har IT-grunnkurs på ntnu og sitter med en øving her som jeg ikke får til. Skulle for en gangs skyld sette meg ned og prøve helt alene, men jeg sitter jo helt fast her!

 

Oppgaven er:

"Vi skal lage en funksjon for °a finne partisjonsnormen jjPjj (det lengste intervallet) til en inndeling

x 2 [a; b] i intervaller a = x0 < x1 < x2 : : : < xn?1 < xn = b.

a) Kall funksjonen partition norm. Funksjonen skal ta inn ei liste av punkter, points,

og levere fra seg partisjonsnormen jjPjj (ett tall). Det er ikke nødvendig °a sjekke om

punktene i lista ligger i stigende rekkefølge. Du skal ikke bruke innebygde funksjoner

som max, sum, og tilsvarende.

b) Sjekk funksjonen p°a H-W-T 5.2.34: P = f?2;?1:6;?0:5; 0; 0:8; 1g."

 

 

Her er koden jeg lagde (funker ikke):

function p = partition_norm(P)
 n = 0;
 max = 0;

 for i = 1:length(P)
a = P(i + (n+1))-P(i+n);
if (a > max)
  max = a;
end
n = n + 1
 end
 disp(max);
end

 

Hva er feil? Takk for svar :)

Lenke til kommentar
Videoannonse
Annonse

For det første, den matematiske notasjonen din suger. Det er noen tegn som ikke gir så mye mening her ihvertfall..

 

For det andre, får du ingen feilmeldinger? Får du ikke riktig svar? Kjører scriptet i det hele tatt? Forklar litt bedre hva som skjer istedetfor "hva er feil?"

 

Jeg går ut i fra at listen allerede er sortert siden man ikke trenger å sjekke om den har stigende verdier. Men måten du gir a en verdi på ser ikke helt riktig ut. Hva med å sette last = P(1) før loopen, og inni loopen (den kan forøvrig starte på 2):

a = P(i) - last;

last = P(i);

Kan du kalle en variabel max når det allerede er en standardfunksjon som heter max? Ellers tror jeg det er greit, men dropp variablen n og finn et annet navn for max-variablen.

 

Spørsmål b sa meg ikke så mye..

Endret av teflonpanne
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...