1. Els guions de pràctiques
En aquesta entrada, vull explicar com s’ha de fer per generar un guió de pràctiques com els que tenim penjats aquí. Espero que us resulti atractiu i us animeu a fer-ne vosaltres pel vostre compte!!
Com veureu, una vegada decidit quin problema volem passar a la pràctica i el programem, tindrem un codi Matlab fet. Fer el guió de la pràctica a partir d’aquest codi és epsilon més d’esforç si utilitzes les eines adequades.
Un dels problemes amb el que ens enfrontem quan volem confeccionar material didàctic és el format. Podem, per descomptat, publicar en format paper, ja sigui un llibre o uns apunts. S’ha de dir que encara se li dona major reconeixement a aquest format que a les versions electròniques però espero que això canviï algun dia. De fet, el problema del format paper és que no és fàcil de modificar, qualsevol actualització, o petita correcció, no és factible. Per això molts de nosaltres publicàvem ja fitxers pdf que almenys podíem tornar a generar sempre que calgués.
Actualment la vida és més agradable. Les eines com el Matlab (també Python, R o GitHub) incorporen la possibilitat d’utilitzar llenguatges MarkDown que amb instruccions d’etiquetes (tipus Html o Latex) poden millorar molt els resultats. Tot això és una forma una miqueta pedant de dir que, si en el teu text hi poses les paraules clau i/o comentaris adequats, el teu text quedarà molt millor visualment parlant. El que realment valoro és que al final tindrem un arxiu en format html que podem publicar fàcilment en una pàgina web i donar-li visibilitat.
2. Veiem un exemple
Farem un exemple sense cap pretensió matemàtica, simplement per poder il·lustrar com s’han d’afegir els nous elements perquè el codi passi a guió.
Suposem que volem mostrar a l’estudiant quina forma té una corba a l’espai com és l’Hèlix. Aquesta corba ve definida per dues equacions x=cos(z), y=sin(z). Volem pintar la corba i posteriorment, recórrer-la amb un punt que es va desplaçant per sobre.
El codi Matlab que fa això és aquest que teniu aquí sota:
%definició de l'Hèlix nVoltes=3; pasAngle=pi/20; ang=0:pasAngle:2*pi*nVoltes; x=cos(ang); y=sin(ang); z=ang; nPunts=size(ang,2); %total de punts de la corba 1xNumPunts %pintem l'Hèlix for i=1:nPunts plot3(x,y,z); % pintem tota la corba hold on; axis([-2,2,-2,2,0,20]); % ara pintem el punt sobre la corba plot3(x(i),y(i),z(i),'marker','o','markersize',8,'markerfacecolor', 'green'); hold off; pause(0.01); %perque tardi una mica a dibuixar-se (en segons) end
Estic suposant que tothom sap copiar aquest codi i executar-lo amb Matlab, en cas contrari, podeu mirar el guió d’introducció que tenim fet pels estudiants.
3. Crear el guió
El pas de codi a guió en format html consisteix simplement en executar el codi dins de l’interficie de Matlab, però obrint la pestanya PUBLISH i apretant el botó del play dins aquesta pestanya tal com es mostra a la figura.
En prémer aquest botó, es crea una carpeta dins l’actual directori de treball anomenada html i s’arrenca el visualitzador web de Matlab mostrant-nos el resultat. En aquest cas simplement el codi i la figura final. Dins d’aquesta carpeta hi haurà un fitxer html i també altres fitxers amb les possibles figures generades. Ja tenim una versió 0 del guió!!
Per donar-li un aspecte més professional, ara farem uns retocs dins el codi que ens permetran crear un títol, diferents apartats (linkats directament), fórmules Latex, etc.
a. El títol
Només cal afegir una primera línia amb un doble comentari de Matlab %% (veieu el codi aquí sota). També podem afegir, posant un comentari % al començament de la línia, una mica d’explicació sobre el problema. Hem aprofitat per inserir alguna expressió en Latex, que simplement segueix la sintaxi d’aquest llenguatge. També funciona com ho fa el whatsup, de manera que *paraula* és en negreta, _paraula_ és en itàlic, etc.
Proveu a afegir aquestes línies, tornar a fer el publish i veure el resultat.
%% L'Hèlix: un exemple de corba parametritzada % % Anomenem *Hèlix* a una corba de $R^3$ definida per % % $$ x=\cos(z), \quad y= \sin(z)$$ % %definició de l'Hèlix; nVoltes=3; pasAngle=pi/20; ang=0:pasAngle:2*pi*nVoltes; x=cos(ang); y=sin(ang); .........
b. Crear diferents seccions dins el guió
Per ordenar l’excució del codi, podem anar separant les diferents línies en apartats segons ens convingui. Per això només cal inserir una altra línia amb un doble comentari (%%) cada vegada que volguem separar les explicacions sobre el codi. De manera automàtica, quan executem per publish, el document html crea un index de continguts (contents) que dona un link a cada una de les parts del guió. Els resultats parcials (que es mostren si no hi posem el “;” al final de la instrucció) es visualitzen després de cada secció.
%% L'Hèlix: un exemple de corba parametritzada % % Anomenem *Hèlix* a una corba de $R^3$ definida per % % $$ x=\cos(z), \quad y= \sin(z)$$ % %% Paràmetres de l'Helix % Per definir l'Hèlix utilitzarem el nombre de voltes que farem i també el % pas amb que recorrerem el paràmetre angle que defineix la corba. nVoltes=3; pasAngle=pi/20; %% Creació dels punts de la corba % Ara substituïm els valors i creem els vectors x,y,z de la corba ang=0:pasAngle:2*pi*nVoltes; x=cos(ang); y=sin(ang); .....
L’aspecte final del guió el podeu veure a la imatge de sota. Descarregueu el fitxer seguint el link que hi ha al final del post.
Aquí teniu el fitxer matlab final amb tots els canvis introduïts.
Com he dit al començament, hi ha altres llenguatges que permeten obtenir resultats bastant similars. Si algú s’anima a fer la versió Python d’aquest post, estaré encantat de publicar-la…..
Impactes: 1572
One Comment Add yours