Weergegeven resultaten: 1 t/m 9 van 9

Discussie: MatLab

  1. #1
    Gevorderd   Toelly's schermafbeelding
    Geregistreerd
    14 mei 2009
    Locatie
    Sint-Niklaas
    Berichten
    343
    Bedankjes
    72
    Bedankt
    688 keer in 258 posts

    MatLab

    Voor degenen die een beetje thuis zijn in MatLab, ik heb het volgende probleem:

    opdracht: genereer een binaire matrix met dimensie 50x50 die grafisch wordt voorgesteld.

    Mijn oplossing hiervoor was:
    > met 'rand' een 50x50 matrix genereren met getallen tussen 0 en 1
    > alle elementen in die verzameling afronden naar het dichtsbijzijnde getal (0 of 1 dus)
    > de spreiding weergeven via 'spy'

    Mijn probleem: hoe kan ik alle elementen van een matrix afronden? Normaal gezien kan je dit met een speciale notatie:
    om bijvoorbeeld alle elementen van matrix P te kwadrateren, doe je het volgende: 'P.^2'.
    Ik zie alleen niet in hoe ik dit kan gebruiken om alle elementen af te ronden via het 'round' commando. 'P.round' werkt bijvoorbeeld niet :S

    Weet iemand hier raad mee?
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987

  2. #2
    Gevorderd   Toelly's schermafbeelding
    Geregistreerd
    14 mei 2009
    Locatie
    Sint-Niklaas
    Berichten
    343
    Bedankjes
    72
    Bedankt
    688 keer in 258 posts
    Ik heb de neiging om gemakkelijke dingen altijd complex te maken of het veel te ver te zoeken. Je kan al raden: het juiste commando is round(P)
    XD
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987

  3. De volgende gebruiker bedankt Toelly voor deze nuttige post:

    PeterN (14 januari 2010)

  4. #3
    Gevorderd   Toelly's schermafbeelding
    Geregistreerd
    14 mei 2009
    Locatie
    Sint-Niklaas
    Berichten
    343
    Bedankjes
    72
    Bedankt
    688 keer in 258 posts
    Hier ben ik weer met een matlab/programmeer vraagje

    De opdracht was om een dobbelsimulatie te maken van 20 worpen. Indien het aantal vijven en zessen samen 14 of meer was, won je 2 euro. Indien dit minder dan 14 maar 8 of meer was, dan won je 1 euro. Indien het aantal minder dan 8 was, dan won je niets :P

    Dit lukt allemaal perfect met volgende code:

    Code:
    function [Worpen,prijs] = dobbelen(aantal)
        ondergrens1euro = 8;
        ondergrens2euro = 14;
        aantal5 = 0;
        aantal6 = 0;
        
        for i = 1:aantal
            Worpen(i) = simulatie;
            if (Worpen(i)==5)
                aantal5 = aantal5 + 1;
            else (Worpen(i)==6)
                aantal6 = aantal6 + 1;
            end
        end
        
        totaal5en6 = aantal5 + aantal6;
        if (totaal5en6 >= ondergrens2euro)
            prijs = 2;
            disp (['U heeft €' num2str(prijs) ' gewonnen']);
        elseif (totaal5en6 >= ondergrens1euro)
            prijs = 1;
            disp (['U heeft €' num2str(prijs) ' gewonnen']);
        else
            prijs = 0;
            disp (['U heeft €' num2str(prijs) ' gewonnen']);
        end
        
    end
    Het resultaat is daarmee perfect in orde, maar het probleem is dat er bij mijn resultaat nog een hoop "rommel" kwam, waarvan ik niet weet waar ze vandaan kwam. (Hiermee bedoel al die enen en nullen die ook verschijnen). Weet iemand waar deze vandaan komen? :S

    Code:
    >> [worpen,prijs] = dobbelen(20)
    
    ans =
    
         1
    
    
    ans =
    
         0
    
    
    ans =
    
         0
    
    
    ans =
    
         0
    
    
    ans =
    
         0
    
    
    ans =
    
         1
    
    
    ans =
    
         1
    
    
    ans =
    
         0
    
    
    ans =
    
         1
    
    
    ans =
    
         1
    
    
    ans =
    
         0
    
    
    ans =
    
         0
    
    
    ans =
    
         0
    
    
    ans =
    
         1
    
    
    ans =
    
         1
    
    
    ans =
    
         0
    
    
    ans =
    
         0
    
    
    ans =
    
         1
    
    U heeft €2 gewonnen
    
    worpen =
    
      Columns 1 through 15
    
         6     4     1     2     4     6     6     1     6     6     3     5     1     3     6
    
      Columns 16 through 20
    
         5     6     4     1     6
    
    
    prijs =
    
         2
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987

  5. #4
    PC-Freak  
    Geregistreerd
    10 december 2006
    Locatie
    Earth.
    Berichten
    1.122
    Bedankjes
    287
    Bedankt
    631 keer in 427 posts
    Matlab , is dat hetzelfde als Scilab ? Want het lijkt juist hetzelfde ..
    http://twitter.com/Fck___

  6. #5
    Gevorderd   Toelly's schermafbeelding
    Geregistreerd
    14 mei 2009
    Locatie
    Sint-Niklaas
    Berichten
    343
    Bedankjes
    72
    Bedankt
    688 keer in 258 posts
    Kan zijn
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987

  7. #6
    PC-Freak  
    Geregistreerd
    10 december 2006
    Locatie
    Earth.
    Berichten
    1.122
    Bedankjes
    287
    Bedankt
    631 keer in 427 posts
    function [Worpen,prijs] = dobbelen(aantal)

    Hij geeft dus terug : [Worpen,prijs]. Daarom mss.
    Als je er nu van maakt:
    fucntion y = dobbelen() ...
    Dan geeft hij alleen y terug. Als je dan bij elk deel in plaats van display , gewoon gebruikt
    Q = 'Je won 2€' fzo , en dan op het einde y = Q, dan zou het goed moeten zijn. Mr dan moet je wel heel je functie aanpassen denk ik .
    http://twitter.com/Fck___

  8. #7
    Gevorderd   Toelly's schermafbeelding
    Geregistreerd
    14 mei 2009
    Locatie
    Sint-Niklaas
    Berichten
    343
    Bedankjes
    72
    Bedankt
    688 keer in 258 posts
    De worpen en de prijs mogen getoond worden. Het gaat hem om al die enen en nullen die ervoor komen. Ik heb namelijk totaal geen idee waar die vandaan komen en kan ze dus ook niet wegdoen :S
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987

  9. #8
    PC-Freak  
    Geregistreerd
    10 december 2006
    Locatie
    Earth.
    Berichten
    1.122
    Bedankjes
    287
    Bedankt
    631 keer in 427 posts
    Code:
    for i = 1:aantal
            Worpen(i) = simulatie;
            if (Worpen(i)==5)
                aantal5 = aantal5 + 1;
            else (Worpen(i)==6)
                aantal6 = aantal6 + 1;
            end
        end
    Simulatie, dat is nog een andere functie?
    Het kan zijn dat die meldingen ook nog van een andere functie komen hé , die gebruikt word in deze.
    http://twitter.com/Fck___

  10. #9
    Gevorderd   Toelly's schermafbeelding
    Geregistreerd
    14 mei 2009
    Locatie
    Sint-Niklaas
    Berichten
    343
    Bedankjes
    72
    Bedankt
    688 keer in 258 posts
    Die simulatie levert de getallen 1,2,3,4,5 of 6 op, dus dat verklaart nog niet waar de nullen dan vandaan komen. En bij die simulatie wordt alle uitvoer onderdrukt, behalve het resultaat van de worp, welke dan in worp-functie wordt gebruikt.

    Maar ik denk dat ik al een idee heb waar ze vandaan komen. Telkens mijn resultaat 5 of 6 is, is "ans = 1" en anders is "ans = 0". Nu alleen nog uitvissen waarom die dat weergeeft :P
    0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987

Discussie informatie

Users Browsing this Thread

Momenteel bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Soortgelijke discussies

  1. Probleem met openen matlab bestand
    Door OrangeDaisy in forum Overige software
    Reacties: 9
    Laatste bericht: 26 juli 2007, 14:13

Favorieten/bladwijzers

Favorieten/bladwijzers

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •