henrikrox Skrevet 15. september 2012 Del Skrevet 15. september 2012 Er på den siste oppgaven i en oblig i matlab, skal først inn om 17 dager, men digg å bli ferdig med den nå Uansett, oppgaven var forholdsvis enkel, du skulle: "Bruk funksjoner fra ”symbolic toolbox” til å finne integralet, dobbeltintegralet og trippel- integralet av uttrykket y = x2. Lag fire subplott i figur 5, der y vises i første plott, integralet til y i andre plott, dobbeltintegralet i tredje plott, og trippelintegralet i fjerde plott. For alle plottene skal x være innenfor intervallet [-2,2]. Se figuren under. Din figur skal bli lik denne." x=-2:.1:2; y=x.^2; x=sym('x'); int(x.^2) x=sym('x'); int(x^3/3) x=sym('x'); int(x^4/12) figure(5) Hvordan plotter jeg de inn i samme figur? Har lekt meg med subplot men blir bare surr, den skal altså ligge mellom -2,2 Legger med filen hvordan det skal se ut Lenke til kommentar
colpeps Skrevet 15. september 2012 Del Skrevet 15. september 2012 Du bruker subplot funksjonen, ved å sette subplot(antall,hvor mange vinduer,hvilken plot det er) så dersom du skulle plotte den første funksjonen så skriver du subplot(4,1,1); og så plot(x,y).. Så hvis du skal ta den neste så er det subplot(4,1,2) så plot(); funksjonen igjen.. og sånn fortsetter du fram til du har 4 plots i ett vindu... Kanskje litt kronglete forklart men det står en god del om det her. Lenke til kommentar
henrikrox Skrevet 15. september 2012 Forfatter Del Skrevet 15. september 2012 Har forøvrig skrivd det sånn her Men grafen er jo ikke lik i det hele tatt y=x.^2; x=sym('x'); int(x.^2) x=sym('x'); int(x^3/3) x=sym('x'); int(x^4/12) figure(5) x=-2:1:2 subplot(2,2,1); plot(x.^2); subplot(2,2,2); plot(x.^3/3); subplot(2,2,3) plot(x.^4/12); subplot(2,2,4); plot(x.^5/60); Du bruker subplot funksjonen, ved å sette subplot(antall,hvor mange vinduer,hvilken plot det er) så dersom du skulle plotte den første funksjonen så skriver du subplot(4,1,1); og så plot(x,y).. Så hvis du skal ta den neste så er det subplot(4,1,2) så plot(); funksjonen igjen.. og sånn fortsetter du fram til du har 4 plots i ett vindu... Kanskje litt kronglete forklart men det står en god del om det her. oj så først hva du hadde skrevet nå, får prøve igjen takk Lenke til kommentar
henrikrox Skrevet 15. september 2012 Forfatter Del Skrevet 15. september 2012 (endret) Du bruker subplot funksjonen, ved å sette subplot(antall,hvor mange vinduer,hvilken plot det er) så dersom du skulle plotte den første funksjonen så skriver du subplot(4,1,1); og så plot(x,y).. Så hvis du skal ta den neste så er det subplot(4,1,2) så plot(); funksjonen igjen.. og sånn fortsetter du fram til du har 4 plots i ett vindu... Kanskje litt kronglete forklart men det står en god del om det her. Jeg hadde tydeligvis brukt riktig når jeg brukte subplot(2,2,1) osv. Fordi med 4, blir de avlang. Men uansett ,med de de riktige plottene fra integralene, så blir fortsatt grafene helt feil. i forhold til hvordan de skal se ut. Av en merkelig grunn tar han ikke med fra -2 til 2 på xaksen. Setter jeg det inn manuelt så blir bare grafen enda værre På det andre screenshotet ser det når jeg setter -2 til 2 på xaksen, men da syntes jo nesten ikke noe av grafen, vet ikke om han tar for lite punkter eller what. Det første bildet er jo lik fasiten som jeg postet i første inlegg. Men den er mer hakkete og tar ikke med -2 på x-aksen Endret 15. september 2012 av henrikrox Lenke til kommentar
colpeps Skrevet 15. september 2012 Del Skrevet 15. september 2012 Åja sorry , men grafene ser riktige ut, det som er feil er at du ikke har nok "punkter" til å vise bue og pen graf. Det du kan gjøre er å endre x=(-2:(hva som står her):2) til et lite tall, som feks 0.001, prøv deg fram til du får riktig resultat. Lenke til kommentar
Torbjørn T. Skrevet 15. september 2012 Del Skrevet 15. september 2012 (endret) Angåande subplot, om det ikkje var heilt klart: Tenk på subplot-funksjonen som at den deler opp figur-vindauget i eit gitt antal rader og kolonner (som ein tabell) og, angir kva celle® i tabellen som er aktiv. subplot(3,2,1) deler opp i tre rader og to kolonner, og gjer den fyrste cella (øvst til venstre) aktiv. subplot(3,2,2) vil gjere cella øvst til høgre aktiv, sidan teljaren går fyrst bortover so nedover (motsatt av vanleg indeksering i matriser). Angåande resten: Du treng berre definere x som symbolsk variabel ein gong, og det er ikkje nødvendig å definere verdiane for x (x = -2:.1:2). Vidare kan du lagre resultatet av integrasjonen i ein variabel, og integrere denne igjen, då treng du ikkje lese funksjonane av kommandolinja (om det var det du hadde gjort). Til sist kan du plotte symbolske funksjonar med ezplot(f,[min max]). syms x y = x^2; y2 = int(y); y3 = int(y2); y4 = int(y3); figure; subplot(2,2,1) ezplot(y,[-2 2]) subplot(2,2,2) ezplot(y2,[-2 2]) subplot(2,2,3) ezplot(y3,[-2 2]) subplot(2,2,4) ezplot(y4,[-2 2]) Endret 15. september 2012 av Torbjørn T. Lenke til kommentar
henrikrox Skrevet 15. september 2012 Forfatter Del Skrevet 15. september 2012 Angåande subplot, om det ikkje var heilt klart: Tenk på subplot-funksjonen som at den deler opp figur-vindauget i eit gitt antal rader og kolonner (som ein tabell) og, angir kva celle® i tabellen som er aktiv. subplot(3,2,1) deler opp i tre rader og to kolonner, og gjer den fyrste cella (øvst til venstre) aktiv. subplot(3,2,2) vil gjere cella øvst til høgre aktiv, sidan teljaren går fyrst bortover so nedover (motsatt av vanleg indeksering i matriser). Angåande resten: Du treng berre definere x som symbolsk variabel ein gong, og det er ikkje nødvendig å definere verdiane for x (x = -2:.1:2). Vidare kan du lagre resultatet av integrasjonen i ein variabel, og integrere denne igjen, då treng du ikkje lese funksjonane av kommandolinja (om det var det du hadde gjort). Til sist kan du plotte symbolske funksjonar med ezplot(f,[min max]). syms x y = x^2; y2 = int(y); y3 = int(y2); y4 = int(y3); figure; subplot(2,2,1) ezplot(y,[-2 2]) subplot(2,2,2) ezplot(y2,[-2 2]) subplot(2,2,3) ezplot(y3,[-2 2]) subplot(2,2,4) ezplot(y4,[-2 2]) Takk torbjørn, vi skal bare ha matlab i 6 uker, så er det slutt tydeligvis så blir det eksamen i november. Takk for en veldig god forklaring. Ser jeg har gjort det litt tungvint. Aner ikke hvor mye jeg setter pris på dette. Vi er på kap 12, og vi begynte i uke 34, så her går det fort unna! Lenke til kommentar
henrikrox Skrevet 18. september 2012 Forfatter Del Skrevet 18. september 2012 Da var oblig levert, skal først inn 1 oktober, og det føltes godt. Holder nå på frivllig oppgave sett, og har et spørsmål om en oppgave jeg sliter litt med. Da vi ikke har brukt function mye, sliter meg å skrive en function som får ting til å fungere med kryptering/dekryptering Lenke til kommentar
henrikrox Skrevet 18. september 2012 Forfatter Del Skrevet 18. september 2012 Her er forøvrig det jeg har kommet frem til, men får ikke kryptert hele navnet mitt, har heller ikke laget det som egen dekrypt/krypt funksjon alf = char(97:122); % 26 Bokstaver innbokst = input('Legg inn en bokstav fra a til z: ','s'); skift = input('Legg inn antall skift: '); pos = find(alf==innbokst); if isempty(pos) utbokst = '*'; else nypos = mod(pos+skift,26); %modulo-operator. if nypos == 0 % mod gir oss 0 der vi ønsker 6. nypos = 26; end utbokst = alf(nypos); end Lenke til kommentar
Torbjørn T. Skrevet 18. september 2012 Del Skrevet 18. september 2012 (endret) For å utvide til ord kan du bruke ei for-løkke, der du for kvart teikn i strengen innbokst substituerer bokstaven, og lagrer resultatet i utbokst. Noko liknande for ind = 1:length(innbokst) pos = find(alf==innbokst(ind)); % kode for å finne nypos utbokst(ind) = alf(nypos); end disp(utbokst) % for å vise resultatet Hugs å ta mellomrom med i betraktninga. Endret 18. september 2012 av Torbjørn T. Lenke til kommentar
henrikrox Skrevet 19. september 2012 Forfatter Del Skrevet 19. september 2012 (endret) For å utvide til ord kan du bruke ei for-løkke, der du for kvart teikn i strengen innbokst substituerer bokstaven, og lagrer resultatet i utbokst. Noko liknande for ind = 1:length(innbokst) pos = find(alf==innbokst(ind)); % kode for å finne nypos utbokst(ind) = alf(nypos); end disp(utbokst) % for å vise resultatet Hugs å ta mellomrom med i betraktninga. Forstår ikke helt, men jeg gir meg ikke! Takk skal du ha:) alf = char(97:122); % 26 Bokstaver innbokst = input('Legg inn en bokstav fra a til z: ','s'); skift = input('Legg inn antall skift: '); pos = find(alf==innbokst); if isempty(pos) utbokst = '*'; else nypos = mod(pos+skift,26); %modulo-operator. if nypos == 0 % mod gir oss 0 der vi ønsker 6. nypos = 26; end utbokst = alf(nypos); end for ind = 1:length(innbokst) pos = find(alf==innbokst(ind)); % kode for å finne nypos utbokst(ind) = alf(nypos); end disp(utbokst) % for å vise resultatet Er dette jeg har gjort, alt er riktig, men den godtar ikke mer enn en bokstav. beklager å plage deg så mye. Endret 19. september 2012 av henrikrox Lenke til kommentar
Torbjørn T. Skrevet 19. september 2012 Del Skrevet 19. september 2012 Med "% kode for å finne nypos" meinte eg at du skulle putte inn din kode for å finne nypos der, var vel litt uklart. alf = char(97:122); % 26 Bokstaver innbokst = input('Legg inn en bokstav fra a til z: ','s'); skift = input('Legg inn antall skift: '); for ind = 1:length(innbokst) pos = find(alf==innbokst(ind)); if isempty(pos) utbokst(ind) = '*'; else nypos = mod(pos+skift,26); %modulo-operator. if nypos == 0 % mod gir oss 0 der vi ønsker 6. nypos = 26; end utbokst(ind) = alf(nypos); end end disp(utbokst) % for å vise resultatet Og so må du som sagt hugse å ta høgde for mellomrom, som ikkje skal verte endra. Lenke til kommentar
matlabhelp Skrevet 24. september 2013 Del Skrevet 24. september 2013 hei! sitter med samme oppgave nå, bortsett fra at det skal være et eller flere ord som skal krypteres, samtidig som mellomrom skal vises som stjerne, samt bokstavene æ,ø,å også. Noen forslag til hvordan jeg kan gå fram der? ut i fra ditt tidligere forslag Torbjørn. Lenke til kommentar
Torbjørn T. Skrevet 24. september 2013 Del Skrevet 24. september 2013 Handtering av fleire ord og mellomrom er no inkludert i den kodesnutten som er gitt over. For å ta med æøå er det kanskje nok å berre leggje dei til på slutten av alf-strengen, t.d. alf = [char(97:122),'æøå']; Lenke til kommentar
matlabhelp Skrevet 24. september 2013 Del Skrevet 24. september 2013 hei igjen! Takk for svar, men får ikke dette til å fungere.. krypteringen skal være n ledd foran de opprinnelige bokstavene i ordet jeg taster inn, men det kommer mye rart når jeg prøver denne på min pc... noen ideer? Lenke til kommentar
matlabhelp Skrevet 24. september 2013 Del Skrevet 24. september 2013 eller det første ordet som kommer opp er faktisk riktig, men så kommer det en * mellom det andre ordet som jeg er usikker på hva det skal bety Lenke til kommentar
Torbjørn T. Skrevet 24. september 2013 Del Skrevet 24. september 2013 Skulle ikkje mellomrom visast som stjerne? Elles er det mykje enklare å svare om du poster koden du har brukt. Lenke til kommentar
matlabhelp Skrevet 25. september 2013 Del Skrevet 25. september 2013 Jo mellomrom vises som stjerne, men selv om jeg skriver inn et ord, eller bare en bokstav, så kommer det to ord skilt med da en *. Foreløpig bruker jeg den kodingen du foreslo, da den jeg lagde ikke ville fungere i det hele tatt Lenke til kommentar
Torbjørn T. Skrevet 25. september 2013 Del Skrevet 25. september 2013 Får du same resultat uansett kva du skriv inn? Merk og at koden over ikkje tek hensyn til store bokstavar og tal, so dei vil dukke opp stjerner. Lenke til kommentar
matlabhelp Skrevet 25. september 2013 Del Skrevet 25. september 2013 Nei, det blir forsåvidt riktig på venstre side av * som skiller de to krypteringssvarene, men skjønner ikke hvorfor det kommer to svar selv om jeg skriver inn 1 ord. Men forsåvidt skal den jo fungere når jeg skriver inn "mitt navn er .." Så kan jo prøve å se litt på det, hvis du ikke har noen supre forslag Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå