settTidspunkt('timeplan.csv',2,2,'Fysikk')
??? Subscript indices must either be real positive integers or logicals.
Error in ==> settTidspunkt at 7
tp(tidsp,dag) = {fag};
--------------------------
Det var da som bare... Gud jeg er elendig i it...
IT ØVING 9 - En del sprøsmål
Moderators: Vektormannen, espen180, Aleks855, Solar Plexsus, Gustav, Nebuchadnezzar, Janhaa
-
- Fibonacci
- Posts: 5648
- Joined: 24/05-2009 14:16
- Location: NTNU
"Å vite hva man ikke vet er og en slags allvitenhet" - Piet Hein
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
Trodde du sa du ikke skulle koke jegNebuchadnezzar wrote:function tp = settTidspunkt(tptab,dag,tidsp,fag)
tp = tpTilCell(tptab);
tidsp = tidsp-7;
if numel(tidsp) > 1
tp(tidsp,dag) = repmat({fag},numel(tidsp),1);
else
tp(tidsp,dag) = fag;
end

Som jeg skrev da jeg limte inn koden her på forumet så går det an å gjøre masse sjekker for å sørge for at input er riktig (f.eks tok jeg utgangspunkt i at man ikke har timer før kl 8 (ergo -7 på indeks). Ellers var det en glipp der jeg glemte {} rundt "fag".
-
- Fibonacci
- Posts: 5648
- Joined: 24/05-2009 14:16
- Location: NTNU
Sjekker om den kjører, kommer nok til å sitte oppe i natt for å skrive =)
Litt av problemet mitt, er at jeg ikke klarer å skrive CSV filen inn i en matrise som har domenet utenfor funksjonen.
Klipp og lim er en fin ting for å se hvordan ting fungerer
Tenkte time 1 2 3 4 jeg, jaja =)
Litt trøtt.
Litt av problemet mitt, er at jeg ikke klarer å skrive CSV filen inn i en matrise som har domenet utenfor funksjonen.
Klipp og lim er en fin ting for å se hvordan ting fungerer
Tenkte time 1 2 3 4 jeg, jaja =)
Litt trøtt.
"Å vite hva man ikke vet er og en slags allvitenhet" - Piet Hein
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
-
- Fibonacci
- Posts: 5648
- Joined: 24/05-2009 14:16
- Location: NTNU
Fikser resten i morgen, dette var vanskelig
"Å vite hva man ikke vet er og en slags allvitenhet" - Piet Hein
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
Du får jo tilbake en cell--array fra funksjonen, holder ikke det? Hvis du tror at du klarer å lage en "matrise" med strenger av forskjellig lengde så må du nok tro om igjen.Nebuchadnezzar wrote:Sjekker om den kjører, kommer nok til å sitte oppe i natt for å skrive =)
Litt av problemet mitt, er at jeg ikke klarer å skrive CSV filen inn i en matrise som har domenet utenfor funksjonen.

F.eks
Code: Select all
a = 'bil';
b = 'sjokolade';
d = length(b)-length(a);
C = [b; a repmat(' ',1,d)];
-
- Fibonacci
- Posts: 5648
- Joined: 24/05-2009 14:16
- Location: NTNU
Tror jeg bare gir opp. Litt av problemet mitt er at jeg tror jeg ikke vet hva oppgaven spørr etter...
Litt av problemene mine er at alle disse funksjonene arbeider uavhengig av hverandre og i forhold til timplan.csv filen.
For eksempel, jeg kan fint laste den Timeplen.csv, inn i en celle. MEN denne cellen kan kun bli brukt inne i lastefunksjonen. Prøver jeg å gjøre noe frekt som
k = tpTilCeller('timeplan.csv')
også bruke k, videre fungerer ikke dette.
Dersom jeg skal lage en funksjon som tar inn en verdi, og putter denne inn i denne cellen. Går det fint. Men den blir ikke lagret! Neste gang henter bare lastefunksjonen samme CSV fil, som ikke er forandret...
Og det virker så merkelig at jeg skal lage tre funksjoner, som uavhengig av hverandre ikke fungerer.
Litt av problemene mine er at alle disse funksjonene arbeider uavhengig av hverandre og i forhold til timplan.csv filen.
For eksempel, jeg kan fint laste den Timeplen.csv, inn i en celle. MEN denne cellen kan kun bli brukt inne i lastefunksjonen. Prøver jeg å gjøre noe frekt som
k = tpTilCeller('timeplan.csv')
også bruke k, videre fungerer ikke dette.
Dersom jeg skal lage en funksjon som tar inn en verdi, og putter denne inn i denne cellen. Går det fint. Men den blir ikke lagret! Neste gang henter bare lastefunksjonen samme CSV fil, som ikke er forandret...
Og det virker så merkelig at jeg skal lage tre funksjoner, som uavhengig av hverandre ikke fungerer.
"Å vite hva man ikke vet er og en slags allvitenhet" - Piet Hein
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
Det står jo ganske klart svart på hvitt hva de spør etter i oppgaveteksten.Nebuchadnezzar wrote:Tror jeg bare gir opp. Litt av problemet mitt er at jeg tror jeg ikke vet hva oppgaven spørr etter...
Her tar du feil. Selvsagt kan du bruke k videre; hvis du ikke klarer det så gjør du noe veldig feil. Hvis jeg f.eks i kommandolinja skriverNebuchadnezzar wrote: For eksempel, jeg kan fint laste den Timeplen.csv, inn i en celle. MEN denne cellen kan kun bli brukt inne i lastefunksjonen. Prøver jeg å gjøre noe frekt som
k = tpTilCeller('timeplan.csv')
også bruke k, videre fungerer ikke dette.
k = tpTilCeller('timeplan.csv')
så har jeg fortsatt tilgang til variabelen k (ettersom den er lagret i workspace).
Nei, funksjonen jeg skrev var kun for å lese csv-filen, konvertere til cellestruktur og endre timeplanen hvis ønskelig. Lagring til csv-fil igjen er noe du må skrive selv (hvis du ser på øvinga så er dette en egen deloppgave; jeg gav deg bare kode til de første to deloppgavene).Nebuchadnezzar wrote: Dersom jeg skal lage en funksjon som tar inn en verdi, og putter denne inn i denne cellen. Går det fint. Men den blir ikke lagret! Neste gang henter bare lastefunksjonen samme CSV fil, som ikke er forandret...
Det at du ikke får de til å fungere betyr ikke at de ikke fungerer.Nebuchadnezzar wrote: Og det virker så merkelig at jeg skal lage tre funksjoner, som uavhengig av hverandre ikke fungerer.
-
- Fibonacci
- Posts: 5648
- Joined: 24/05-2009 14:16
- Location: NTNU
Nå mener jeg at jeg har holdt på å skrive litt på første, og siste oppgave. Velger å ikke levere inn denne øvingen da, den ikke er obligatorisk og at jeg ikke fikk den til.
Setter jeg k = tpTilCeller('timeplan.csv')
Kan jeg bruke k videre, men dette er vel ikke en celle? men en eller annen form for matrise.
fungerer uansett ikke å skrive for eksempel
k(1,1) = [k Fysikk] eller k(1,1) = [k 'Fysikk']
Problemet mitt er at hver gang jeg forandrer en linje i timeplanen, så forandrer den bare denne linjen.
For eksempel kjører jeg først at den skal forandre
gjøre mandag 3time fra fysikk til matte
også tirsdag 2time fra exphil til fysikk
Så vil den hver gang hente ut CSV filen, og ikke en cellematrise. Og ejg får heller ikke lagret hver endring. Skal se på det senere, tror jeg slapper av med litt fysikk først.
Setter jeg k = tpTilCeller('timeplan.csv')
Kan jeg bruke k videre, men dette er vel ikke en celle? men en eller annen form for matrise.
fungerer uansett ikke å skrive for eksempel
k(1,1) = [k Fysikk] eller k(1,1) = [k 'Fysikk']
Problemet mitt er at hver gang jeg forandrer en linje i timeplanen, så forandrer den bare denne linjen.
For eksempel kjører jeg først at den skal forandre
gjøre mandag 3time fra fysikk til matte
også tirsdag 2time fra exphil til fysikk
Så vil den hver gang hente ut CSV filen, og ikke en cellematrise. Og ejg får heller ikke lagret hver endring. Skal se på det senere, tror jeg slapper av med litt fysikk først.
"Å vite hva man ikke vet er og en slags allvitenhet" - Piet Hein
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
https://s.ntnu.no/Integralkokeboken
Lektor - Matematikk, Fysikk og Informatikk
Jeg tror du bør lese litt mer i læreboka om de forskjellige datatypene i Matlab, eventuelt bruke mer tid på å lese i dokumentasjonen som følger med programmet (f.eks om cell-arrays og indeksering). Når du har gjort og forstått mer av det vil du se hvor feil det du prøver på i eksempelet over er.Nebuchadnezzar wrote:Nå mener jeg at jeg har holdt på å skrive litt på første, og siste oppgave. Velger å ikke levere inn denne øvingen da, den ikke er obligatorisk og at jeg ikke fikk den til.
Setter jeg k = tpTilCeller('timeplan.csv')
Kan jeg bruke k videre, men dette er vel ikke en celle? men en eller annen form for matrise.
fungerer uansett ikke å skrive for eksempel
k(1,1) = [k Fysikk] eller k(1,1) = [k 'Fysikk']
Problemet mitt er at hver gang jeg forandrer en linje i timeplanen, så forandrer den bare denne linjen.
For eksempel kjører jeg først at den skal forandre
gjøre mandag 3time fra fysikk til matte
også tirsdag 2time fra exphil til fysikk
Så vil den hver gang hente ut CSV filen, og ikke en cellematrise. Og ejg får heller ikke lagret hver endring. Skal se på det senere, tror jeg slapper av med litt fysikk først.
Code: Select all
function lagreTimeplan(tp,filnavn)
[fid err] = fopen(filnavn,'w');
if ~isempty(err)
error(err);
end
for k = 1:5
fagStr = char(tp(:,k));
for m = 1:8
fag = strtrim(fagStr(m,:));
if ~isempty(fag)
fprintf(fid,'%s',fag);
end
if m < 8
fprintf(fid,',');
end
end
if k < 5
fprintf(fid,'\n');
end
end
fclose(fid);
end
Code: Select all
function printTimeplan(tp)
dager = {'Mandag' 'Tirsdag' 'Onsdag' 'Torsdag' 'Fredag'};
klSlett = {'0800' '0900' '1000' '1100' '1200' '1300' '1400' '1500' '1600'}';
for k = 1:5
idx = strcmpi(tp(:,k),'');
if sum(idx) == 8
continue;
else
dagStr = [char(klSlett(~idx)) repmat(' - ',length(idx(~idx)),1) char(tp(~idx,k))];
end
disp([dager{k} ':']);
disp(dagStr);
disp(' ');
end
end