1) c = a | b gir c(i) = 1 der a(i) eller b(i) = 1, og c(i) = 0 der a(i) og b(i) = 0
2) c = a & b gir c(i) = 1 der a(i) = 1 og b(i) = 1, og c(i) = 0 der a(i) eller b(i) = 0.
3) c = a==b gir c(i) = 1 der a(i) = b(i) og 0 der a(i) != b(i)
For ikke-binære sekvenser så skilles det på elementer lik null og elementer ulik null i 1) og 2). Dvs hvis a = [1 3 2] og b = [0 3 1] så vil c = a & b = [0 1 1], mens c = a | b = [1 1 1]. 3) gjelder uansett verdier da man gjør en direkte sammenligning mellom elementene.
Og samme greia for matriser. Elementvis sammenligning.
Ellers må jeg si at du burde øve deg på å uttrykke deg tydeligere, for det er ikke innlysende hva du vil fram til (og sånt blir du straffet for senere i studiet når du skal skrive rapporter osv).
min matlabtråd
Moderatorer: Vektormannen, espen180, Aleks855, Solar Plexsus, Gustav, Nebuchadnezzar, Janhaa
Skal prøve å formulere meg:) Takk for tilbekemelding!
Jeg har et problem med å få en funksjon vist i boka til å fungere i matlab. Funksjonen printem vist her:
http://bildr.no/view/1004261
Her er mitt forsøk:
http://bildr.no/view/1004263
Her er function printem sin tekst:
function printem(a,b)
fprintf('the first number is %.lf and the second is %.lf\n',a,b)
end
Jeg har et problem med å få en funksjon vist i boka til å fungere i matlab. Funksjonen printem vist her:
http://bildr.no/view/1004261
Her er mitt forsøk:
http://bildr.no/view/1004263
Her er function printem sin tekst:
function printem(a,b)
fprintf('the first number is %.lf and the second is %.lf\n',a,b)
end
ærbødigst Gill
Takk!
http://bildr.no/view/1004608
Jeg lurer på hvorfor de har gått fra double til int32 i subfunction i øverste del her som heter askforn. Jeg har prøvd uten og det fungerer helt fint i tilegg har int32 lavere begrensing for høyeste tall enn double.
Dette fungerte og helt fint:
function outn=askforn
inputnum=input('Enter a positive integer for n ')
while inputnum<0
inputnum=input('Invalid! Enter a positive integer ')
end
outn=inputnum
end
http://bildr.no/view/1004608
Jeg lurer på hvorfor de har gått fra double til int32 i subfunction i øverste del her som heter askforn. Jeg har prøvd uten og det fungerer helt fint i tilegg har int32 lavere begrensing for høyeste tall enn double.
Dette fungerte og helt fint:
function outn=askforn
inputnum=input('Enter a positive integer for n ')
while inputnum<0
inputnum=input('Invalid! Enter a positive integer ')
end
outn=inputnum
end
Sist redigert av gill den 19/10-2011 19:50, redigert 1 gang totalt.
ærbødigst Gill
De bruker int32() for å sjekke om tallet du skriver inn er et heltall eller ei. Ved å bruke double så kan du skrive inn flyttall, og det er ikke det de ber om. Men en double datatype kan jo også være et heltall, og det sjekker de ved å konvertere tallet til til int32 og sjekke om tallene er like.
Hvis du ikke vil konvertere til int32 (eller andre heltallstyper) så kan du sikkert sjekke om mod(n,1) er lik null eller ikke. Hvis mod(n,1) er lik null så er n et heltall, hvis ikke så er det ikke det.
Hvis du ikke vil konvertere til int32 (eller andre heltallstyper) så kan du sikkert sjekke om mod(n,1) er lik null eller ikke. Hvis mod(n,1) er lik null så er n et heltall, hvis ikke så er det ikke det.
Jeg lurer på hva de mener med det de har skrevet nedenfor nederst i 6.4
http://bildr.no/view/1005050
altså: Running this function does not add any variables to the base workspace, as demonstrated in the following:
>>clear
>>who
>>disp(mysum([5 9 1]))
15
>>who
>>
Når jeg bruker disp får jeg heller ingen ting i workspace i matlab lagret:
http://bildr.no/view/1005048
Men når jeg kjører funksjonen får jeg ans lagret som variabel:
http://bildr.no/view/1005049
Og da har jo noe blitt lagret i base workspace eller? Jeg vet at disp ikke lagrer noe ans (det står i boka og) men her sier de at de skal kjøre funksjonen og jeg tolker ikke det som at de sier at man må bruke disp her
Videre sier de at for script blir variabler de bruker i scriptet lagret i workspace:
http://bildr.no/view/1005057
Så jeg ser det er forskjell på hva som blir lagret med å kjøre script mot å kjøre funksjon som bare lagrer ans. Er det kanskje det som er hele poenget?
http://bildr.no/view/1005050
altså: Running this function does not add any variables to the base workspace, as demonstrated in the following:
>>clear
>>who
>>disp(mysum([5 9 1]))
15
>>who
>>
Når jeg bruker disp får jeg heller ingen ting i workspace i matlab lagret:
http://bildr.no/view/1005048
Men når jeg kjører funksjonen får jeg ans lagret som variabel:
http://bildr.no/view/1005049
Og da har jo noe blitt lagret i base workspace eller? Jeg vet at disp ikke lagrer noe ans (det står i boka og) men her sier de at de skal kjøre funksjonen og jeg tolker ikke det som at de sier at man må bruke disp her
Videre sier de at for script blir variabler de bruker i scriptet lagret i workspace:
http://bildr.no/view/1005057
Så jeg ser det er forskjell på hva som blir lagret med å kjøre script mot å kjøre funksjon som bare lagrer ans. Er det kanskje det som er hele poenget?
ærbødigst Gill
http://bildr.no/view/1005978
Jeg lurer på hvordan de kaller bar-grafen med eval nederst i link over. Jeg får det bare til slik:
http://bildr.no/view/1005980
Jeg lurer på hvordan de kaller bar-grafen med eval nederst i link over. Jeg får det bare til slik:
http://bildr.no/view/1005980
ærbødigst Gill
De viser en situasjon er du i prinsippet ikke kan vite hva slags plott som brukeren vil be om. Ved å la brukeren skrive det inn og legge det til en streng, kan du velge riktig plott med eval. Alternativet er å lage en lang if-løkke det du tar høyde for alle (sannsynlige) muligheter.
eval('str') er en kommando som evaluerer strenger MATLAB-kommandoer. Det er derfor mulig å generere dynamiske kommandoer ved å lage og lime sammen strenger.
Generellt er det derimot så godt som aldri lurt å bruke eval. Så godt som alle situasjoner der eval kan brukes, kan du gjøre det bedre og raskere på en annen måte.
eval('str') er en kommando som evaluerer strenger MATLAB-kommandoer. Det er derfor mulig å generere dynamiske kommandoer ved å lage og lime sammen strenger.
Generellt er det derimot så godt som aldri lurt å bruke eval. Så godt som alle situasjoner der eval kan brukes, kan du gjøre det bedre og raskere på en annen måte.
ja skulle gjerne holdt meg unna eval men siden den er en del av pensum kan man vel ikke utelukke at den dukker opp på eksamen heller selv om det ser ut som jeg bør håpe på det!
http://bildr.no/view/1005974
http://bildr.no/view/1005975
her i quick question lager de en eval(['sin('angle')']) (øverst i andre del av quick question)
som jeg ikke får til å fungere en gang. Her er mine forsøk:
http://bildr.no/view/1006555
http://bildr.no/view/1005974
http://bildr.no/view/1005975
her i quick question lager de en eval(['sin('angle')']) (øverst i andre del av quick question)
som jeg ikke får til å fungere en gang. Her er mine forsøk:
http://bildr.no/view/1006555
ærbødigst Gill
http://bildr.no/view/1007012
Jeg har prøvd å lage denne funksjonen selv men jeg får et problem med en av verdiene:
Her er funksjonen:
inputfield=input('Which field would you like to see: ','s')
if isfield(package, inputfield)
fprintf('The value of the %s field is: %c\n',inputfield,...
eval(['package.' inputfield]))
else
fprintf('Error: %s is not valid field\n', inputfield)
end
jeg prøvde å kalle den i matlab og definerte først strukturen:
>> package=struct('item_no',123,'cost',19.99,'price',39.95,'code','g')
package =
item_no: 123
cost: 19.9900
price: 39.9500
code: 'g'
>> structurevalue
Which field would you like to see: cost
inputfield =
cost
The value of the cost field is: 1.999000e+001
>> structurevalue
Which field would you like to see: item_no
inputfield =
item_no
The value of the item_no field is: {
hvorfor ble den siste verdien {?
Jeg har prøvd å lage denne funksjonen selv men jeg får et problem med en av verdiene:
Her er funksjonen:
inputfield=input('Which field would you like to see: ','s')
if isfield(package, inputfield)
fprintf('The value of the %s field is: %c\n',inputfield,...
eval(['package.' inputfield]))
else
fprintf('Error: %s is not valid field\n', inputfield)
end
jeg prøvde å kalle den i matlab og definerte først strukturen:
>> package=struct('item_no',123,'cost',19.99,'price',39.95,'code','g')
package =
item_no: 123
cost: 19.9900
price: 39.9500
code: 'g'
>> structurevalue
Which field would you like to see: cost
inputfield =
cost
The value of the cost field is: 1.999000e+001
>> structurevalue
Which field would you like to see: item_no
inputfield =
item_no
The value of the item_no field is: {
hvorfor ble den siste verdien {?
ærbødigst Gill
%c forteller fprintf funksjonen å hvis mulig tolke verdien som en char. 123 i ascii-tabellen er '{'.gill skrev: ...
fprintf('The value of the %s field is: %c\n',inputfield,...
eval(['package.' inputfield]))
...
The value of the item_no field is: {
hvorfor ble den siste verdien {?
Ole J
Jeg skulle prøve å lage en datafil i matlab som besto av tall og bokstaver. Jeg prøvde slik:
>> wordandnumbers=[5.3 'a'; 2.2 'b'; 3.3 'a'; 4.4 'a'; 1.1 'b']
wordandnumbers =
a
b
a
a
b
>>
grunnen til at jeg ville lage en var at de i matlabboka definerte en fil som besto av både tall og bokstaver som heter type subjexp.dat:
http://bildr.no/view/1007434
Hvordan fikk de laget den?
>> wordandnumbers=[5.3 'a'; 2.2 'b'; 3.3 'a'; 4.4 'a'; 1.1 'b']
wordandnumbers =
a
b
a
a
b
>>
grunnen til at jeg ville lage en var at de i matlabboka definerte en fil som besto av både tall og bokstaver som heter type subjexp.dat:
http://bildr.no/view/1007434
Hvordan fikk de laget den?
ærbødigst Gill