abonnement Unibet Coolblue Bitvavo
pi_127746629
Plaats hier je vragen over het programmeren met een van deze programma's of in een van deze talen. Ook vragen over andere minder gebruikte talen zijn welkom.
Ik kies er bewust voor om deze draad in SES te openen in plaats van in dig.
Veel vaste reageerders van SES kunnen prima met deze software werken en het lijkt me juist verstandig om studenten die met hetzelfe bijltje hebben gehakt andere studenten te laten helpen. Vaak ben lang aan het zoeken naar een klein beetje informatie en lang niet altijd krijg je een concreet antwoord (geheugenmanagement bij C bijv.), met behulp van deze draad kan het zoekproces flink worden versneld, kan een student eens wat code laten keuren door anderen (voor optimalisering) etc.
ING en ABN investeerden honderden miljoenen euro in DAPL.
#NoDAPL
pi_127747273
Ik gebruik matlab al jaren, maar hrb nooit goed uitleg gevonden voor cells en cell operaties. Zo ook voor symbolische analyses en berekeningen.

Ik schrijf nu altijd als matrix operaties, wat ook snelst werkt, maar vermoed dat cells even goed kan.

Iemand?
pi_127747429
Die cells zijn voor mij ook nog een mysterie, tot nu toe heb ik ze nog niet gebruikt. Dus als iemand het even wil uitleggen dan lees ik mee.
Zelf ben ik nu even aan het opzoeken hoe je data uit een structure benadert. Ik begrijp dat het verschil tussen de structure en de array is dat de structure ook strings (namen) koppelt aan een vector (serie getallen).

Edit: het antwoord gevonden en een mooie illustratie waarom ik deze draad heb geopend.
Ik had uitgeprobeerd om met [] en () de data te benaderen maar je moet een punt gebruiken. Als je bijvoobeeld 1 x en 2 y's hebt en dit is in de eerste categorie opgeslagen (geen bovencategorie, geen ondercategorie waarin de data zelf zit) dan benader je de data met naam.x , naam.y(1) en naam.y(2)
Nu nog de vraag hoe je zelf een structure aanmaakt.

[ Bericht 29% gewijzigd door Bram_van_Loon op 13-06-2013 13:41:04 ]
ING en ABN investeerden honderden miljoenen euro in DAPL.
#NoDAPL
  donderdag 13 juni 2013 @ 14:39:58 #4
164101 Thormodo
Nu inclusief tweede aap!
pi_127750741
Een array van structures aanmaken werkt als volgt. Eerst uiteraard ruimte alloceren met initiële (al dan niet lege) waarde(s).
StructureData(100).plaatje= 0;
StructureData(100).nummer= 0;
Hier worden de 100ste elementen 0, terwijl de eerste 99 leeg zijn. Je hebt dus 100 structures nu.

Dan de structures vullen
for j = 1:100
StructureData(j).plaatje = Image %Waarbij plaatje uiteraard steeds wat anders is
StructureData(j).nummer= Image_number
end

En op die manier kun je de data ook aanroepen
plaatje1 = StructureData(1).plaatje
nummer1= StructureData(1).nummer

En als je nummer een array is. Kun je het 6e nummer uit die array aanroepen met:
zesde_nummer1= StructureData(1).nummer(6)

Op plek j gooi je dus alles wat bij elkaar hoort. Dat is dus je structure nummer.

Als je maar één structure wilt kun je het gewoon aanmaken zoals je zelf al zei:
>>naam.x = 1
>>naam.y(1) = 2
>>naam.y(2) = 3

naam =
x: 1
y: [2 3]
Je hebt dan dus een structure met 2 velden, x en y, waarbij x een getal is en y een array.

Op blogs.mathworks.com staat over praktisch alles wel een uitgebreide uitleg. Zo ook over structures:
http://blogs.mathworks.co(...)ture-initialization/

Over cell arrays kun je ook op de blog lezen. Persoonlijk heb ik ook nog nooit wat met cell arrays gedaan.
http://blogs.mathworks.co(...)-and-their-contents/

En nog een video over structures/cell arrays: http://www.mathworks.nl/v(...)ll-arrays-68992.html
En veel meer video's: http://www.mathworks.nl/products/matlab/examples.html

[ Bericht 7% gewijzigd door Thormodo op 13-06-2013 15:23:10 ]
pi_127756632
Ik ga ook maar eens beginnen met matlab, heb even een beginnersboekje gehaald. Dus ben nog een noob :@

Weet iemand een betrouwbare site waar ik gratis matlab 7.1 kan downloaden?
pi_127759300
quote:
0s.gif Op donderdag 13 juni 2013 14:39 schreef Thormodo het volgende:
Een array van structures aanmaken werkt als volgt. Eerst uiteraard ruimte alloceren met initiële (al dan niet lege) waarde(s).
StructureData(100).plaatje= 0;
StructureData(100).nummer= 0;
Hier worden de 100ste elementen 0, terwijl de eerste 99 leeg zijn. Je hebt dus 100 structures nu.

Dan de structures vullen
for j = 1:100
StructureData(j).plaatje = Image %Waarbij plaatje uiteraard steeds wat anders is
StructureData(j).nummer= Image_number
end

En op die manier kun je de data ook aanroepen
plaatje1 = StructureData(1).plaatje
nummer1= StructureData(1).nummer

En als je nummer een array is. Kun je het 6e nummer uit die array aanroepen met:
zesde_nummer1= StructureData(1).nummer(6)

Op plek j gooi je dus alles wat bij elkaar hoort. Dat is dus je structure nummer.
Eigenlijk best voorspelbaar als je eenmaal weet hoe je toegang krijgt tot de data. Het was even zoeken om te achterhalen dat je dat met de punt doet.

quote:
Op blogs.mathworks.com staat over praktisch alles wel een uitgebreide uitleg. Zo ook over structures:
http://blogs.mathworks.co(...)ture-initialization/
Het probleem met Mathworks is dat er enorm veel kaf tussen het koren zit, veel te vragen van mensen die een hele opdracht uitgewerkt wil zien en 100 verschillende manieren, ik wil gewoon een korte uitleg over dat ene ding en de beste een meest eenvoudige manier. Met andere woorden, ik wil tutorials op Matlab, geen forumpjes. Daar zitten best deskundige mensen tussen maar je moet door veel te veel heen spitten om tot datgene te komen wat je zoekt.
Misschien ken ik de website niet goed genoeg, ik kom er enkel op terecht via Google.
ING en ABN investeerden honderden miljoenen euro in DAPL.
#NoDAPL
  donderdag 13 juni 2013 @ 18:59:12 #7
164101 Thormodo
Nu inclusief tweede aap!
pi_127759783
quote:
0s.gif Op donderdag 13 juni 2013 17:23 schreef Djibril het volgende:
Weet iemand een betrouwbare site waar ik gratis matlab 7.1 kan downloaden?
Er is helaas geen gratis versie van Matlab.
quote:
0s.gif Op donderdag 13 juni 2013 18:43 schreef Bram_van_Loon het volgende:
Het probleem met Mathworks is dat er enorm veel kaf tussen het koren zit, veel te vragen van mensen die een hele opdracht uitgewerkt wil zien en 100 verschillende manieren, ik wil gewoon een korte uitleg over dat ene ding en de beste een meest eenvoudige manier. Met andere woorden, ik wil tutorials op Matlab, geen forumpjes. Daar zitten best deskundige mensen tussen maar je moet door veel te veel heen spitten om tot datgene te komen wat je zoekt.
Misschien ken ik de website niet goed genoeg, ik kom er enkel op terecht via Google.
Heb je mijn link überhaupt bekeken? Die blogs zijn (veelal) geschreven door mensen die zelf bij MathWorks aan Matlab werken. Rechtsboven op die link kun je de blogs doorzoeken. Totaal iets anders dan het MathWorks forum (newsreader) dus.
pi_127760035
quote:
0s.gif Op donderdag 13 juni 2013 18:59 schreef Thormodo het volgende:

[..]

Er is helaas geen gratis versie van Matlab.

[..]

Heb je mijn link überhaupt bekeken?
Nog niet, vandaar het voorbehoud. Ik was even bezig met andere dingen, nu heb ik het wel bekeken, dat is op zich inderdaad wel een redelijke uitleg.
ING en ABN investeerden honderden miljoenen euro in DAPL.
#NoDAPL
pi_127761966
quote:
0s.gif Op donderdag 13 juni 2013 17:23 schreef Djibril het volgende:
Weet iemand een betrouwbare site waar ik gratis matlab 7.1 kan downloaden?
Octave lijkt er veel op en is wel gratis.
pi_127785791
Hier de procedure als je Griekse letters wil gebruiken in Matlab.
http://kb.mit.edu/confluence/pages/viewpage.action?pageId=3907492
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
How can I get Greek letters in a MATLAB figure title or plot label?

To have greek letters in a Matlab figure title or plot label, you must set the "FontName" for the current axes to "Symbol". One way to do this is:

        >> set (gca,'FontName','Symbol')

"gca" is the "handle" for the current axes object. Each object has a number of properities that can be modified. Type "help get" for more information. Then, from the table below, use the english character that corresponds to the greek letters you want in the desired Matlab title or label. For example to label the X axis with the greek letter omega:

        >> xlabel ('W')

Remember to set the "FontName" back to the default after adding greek text. For example

        >> set (gca,'FontName','Helvetica')

To add greek text with the gtext command, you first add the text and get the "handle" for the text object, then change the font. For example:

        >> han = gtext('Example String')
        >> set (han,'FontName','Symbol')

will put the string "Example String" in the selected location in the greek font.
Greek     English Upper     English Lower
Alpha     A     a
Beta     B     b
Gamma     G     g
Delta     D     d
Epsilon     E     e
Zeta     Z     z
Eta     H     h
Theta     Q     q
Iota     I     i
Kappa     K     k
Lambda     L     l
Mu     M     m
Nu     N     n
Xi     X     x
Omicron     O     o
Pi     P     p
Rho     R     r
Sigma     S     s
Tau     T     t
Upsilon     U     u
Phi     F     f
Chi     C     c
Psi     Y     y
Omega     W     w

Het derde commando is essentiëel, anders kan je bijv. krijgen dat ook het x-teken bij een grote verticale as (*104 als grieks karakter wordt afgebeeld.

Ik kopiëer de instructies aangezien veel websites na verloop van tijd uit de lucht gaan of de pagina's worden verwijderd.

Edit: of je voert simpelweg /karakter in met karakter de naam van de griekse letter. |:(

[ Bericht 1% gewijzigd door Bram_van_Loon op 14-06-2013 19:55:25 ]
ING en ABN investeerden honderden miljoenen euro in DAPL.
#NoDAPL
pi_135199963
Ik heb ook een vraag mbt Matlab

Ik heb een bestand met twee kolommen (x en y)
Tussen de y en z geldt een verband, van de vorm y = (...) z
De factor z komt er meerdere keren voor in de vergelijking, het is dus niet makkelijk om te keren.

Nu is het mijn vraag hoe ik met een gegeven z y kan uitrekenen.
pi_135200320
quote:
6s.gif Op dinsdag 7 januari 2014 19:01 schreef hello_moto1992 het volgende:
Ik heb ook een vraag mbt Matlab

Ik heb een bestand met twee kolommen (x en y)
Tussen de y en z geldt een verband, van de vorm y = (...) z
De factor z komt er meerdere keren voor in de vergelijking, het is dus niet makkelijk om te keren.

Nu is het mijn vraag hoe ik met een gegeven z y kan uitrekenen.
Het is niet helemaal duidelijk wat je wilt.
Bedoel je x met z?
Dit klinkt voor mij als een functie fitten, waarvan je vrijwel altijd een bepaalde vorm veronderstelt. Bijvoorbeeld, een polynomial. Wanneer je dan de parameters voor deze polynomial hebt gevonden, kun je het triviaal gebruiken om nieuwe instanties erin te stoppen.
pi_135203267
quote:
0s.gif Op dinsdag 7 januari 2014 19:08 schreef koffiegast het volgende:

[..]

Het is niet helemaal duidelijk wat je wilt.
Bedoel je x met z?
Dit klinkt voor mij als een functie fitten, waarvan je vrijwel altijd een bepaalde vorm veronderstelt. Bijvoorbeeld, een polynomial. Wanneer je dan de parameters voor deze polynomial hebt gevonden, kun je het triviaal gebruiken om nieuwe instanties erin te stoppen.
Nee, ik heb twee kolommen met bekende gegevens, namelijk tijd en debiet

Het debiet (Q) is afhankelijk van de waterhoogte

Er geldt Q = AR^(2/3)*sqrt( i)/n

A = B*h en P = B+2h, R = A/P
B, i en n zijn gegeven. Tussen h en Q bestaat dus een relatie, namelijk:
Q = B*h*((B*h)/(B+2h))^(2/3)*sqrt(i)/n

Nu wil ik de h bepalen bij een gegeven Q (B,i en n zijn vast).
pi_135203947
Solve?

Dus simpelweg

syms h
B = ...
i = .....
n = .....
solve(B*h*((B*h)/(B+2h))^(2/3)*sqrti/n == Q)

Als je dan steeds voor een ander B wil doen maak je desnoods for loopje wat door die kolom heen loopt ofzo?

dus

syms h
i = .....
n = .....
for x = 1: ......
B = jedata(juiste kolom, x)
Q = jedata(juiste kolom,x)
lijstmeth(x) = solve(B*h*((B*h)/(B+2h))^(2/3)*sqrti/n == Q)
end

ofzoiets? Het is pseudocode dus niet kopiëren.

[ Bericht 9% gewijzigd door Paganitzu op 07-01-2014 20:44:45 ]
pi_135204885
Dit is toch gewoon een inverse vinden van een functie?
Zou je gewoon met calculus kunnen oplossen. Je hebt een waarde dat erin gaat (want rest is constant) en een waarde komt eruit. Je kunt het zelfs plotten, kun je eenvoudig de waarden aflezen.
pi_135206033
Ik
quote:
0s.gif Op donderdag 13 juni 2013 17:23 schreef Djibril het volgende:
Ik ga ook maar eens beginnen met matlab, heb even een beginnersboekje gehaald. Dus ben nog een noob :@

Weet iemand een betrouwbare site waar ik gratis matlab 7.1 kan downloaden?
Kopen.
Of studeren, dan krijg je het meestal gratis aangeboden :')
pi_135216859
Wat studeer jij eigenlijk Bram. Zal draadje volgen voor C en Python
pi_135219623
Ik mag natuurlijk geen link geven (in ieder geval mag dit niet van de beheerder van FOK) maar ik mag volgens mij wel zeggen dat het erg gemakkelijk via het illegale circuit te verkrijgen is voor iedereen die een internetverbinding heeft. Bedenk dat je Matlab ook alleen offline kan gebruiken en dat voor een offlineinstallatie eenzelfde code oneindig vaak gebruikt kan worden. Een beetje beter zoeken dus. ;)
In het algemeen vind ik dat je softwarebedrijven moet steunen als ze iets goeds leveren maar als student ontkom je er niet aan om dit te gebruiken en een licentie is best wel duur. Inderdaad kan je waarschijnlijk via je universiteit of school Matlab installeren.

Wat ik studeer houd ik graag privé aangezien dat het een kleine richting is en ik op internet alles anoniem houd (met uitzondering van een enkeling die je eens privé ontmoet) maar het is een van de richtingen met een hoger bètagehalte en wiskundegehalte binnen de TU waarbij je ook wat moet programmeren. Ik weet dus uit ervaring dat je vaak urenlang kan zoeken naar een geschikte functie of iets dergelijks terwijl het om relatief simpele problemen gaat waardoor je vastloopt. Vandaar dat het mij handig leek om deze draad te openen. Je moet simpelweg wat ervaring hebben met het gebruiken van dit soort programma's en die ervaring kunnen wij hier nu met elkaar delen. Het is dus de bedoeling dat mensen hier niet alleen een vraag stellen en worden geholpen maar dat mensen ook tips en trucs delen en hun verhaal doen als ze ergens mee vastzaten en eindelijk een oplossing vonden.

[ Bericht 13% gewijzigd door Bram_van_Loon op 08-01-2014 01:29:56 ]
ING en ABN investeerden honderden miljoenen euro in DAPL.
#NoDAPL
pi_135228553
1
2
3
for k = 1:length(afvoer)
afvoergolf(k,3)=solve(B.*h.*((B.*h)/(B+2.*h)).^(2./3)*sqrt(i)./n == afvoergolf(k,1),h)
end 

Hier wordt dus in kolom 3 van 'afvoergolf' de juiste waarde geplaatst. De uitvoer is echter dat er volgens mij een k aantal tabellen uitvoer worden gegeven en dat telkens een rij extra opgelost wordt. De laatste tabel is keurig netjes gevuld met de laatste waarden. Dus in principe geeft dit het goede antwoord, maar duurt het berekenen erg lang en is de uitvoer erg groot. Waar zit de fout in?
pi_135238148
Aannemend dat B, h, i en n scalars zijn (gewoon 1 gegeven value),
dan berekent hij niet de hele tabel opnieuw.

Hetgene wat je moet doen is een ";" achter je 'afvoergolf(k,3)...' zetten, want wat het nu doet is continu afvoergolf uitprinten na elke keer als ie door de for loop gaat.

Om dan je resultaten in te zien zul je dan alsnog afvoergolf (of afvoergolf(:,3) ) moeten typen om de tabel te zien.
pi_139884466
even een vraagje:

ik heb een 5479x1 double. Ik wil uitzoeken dat als ik van deze waarden 5 aftrek, welke waarden kleiner dan 0 zijn. Dus gewoon x-5. Vervolgens is het belangrijk om de langst opeenvolgende serie te vinden van waarden van x-5 waarvan kleiner is dan 0. Hoe vind ik die series?
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')