1 Esercitazioni con l’uso di matlab Programma in matlab per shiftare verso destra un numero binario di n componenti : function [b]= schiftdx (a,s) s=1 for k=1:(4-s) b(k+s) = a(k) end Programma in matlab per shiftare verso sinistra un numero binario di n componenti : function[b]=shiftsx(a,s) a=1 s=1 z=size(a) n=z(2) for k=1:n b(k)=0 end for k=1:(n-s) b(k) = a(k+s) end end Programma in matlab per calcolare un la matrice aggiunta di una generica matrice M : function[aggiunta]=aggiunta(A) k=size(A) for i=1:k(1) for j=1:k(2) k=size(A) it=1:k(1); s=0; for z=1:k(1) if z~=it B(:,z-s)=A(:,z) else s=1 end end det(B) C(i,j)=(-1)^(i+j)*det(B) M(j,i)=C(i,j) end end end 2 Programma per calcolare la matrice trasposta di una generica matrice M : function[trasposta]=trasposta(A) Z=size(A) for i=1:Z(1) for j=1:Z(2) M(j,i)=A(i,j); end end end Programma che ordina i numeri in modo decrescente all’interno di un vettore di n componenti : function[ordrig]=ordrig(v) z=size(v) m=[z(2)/2] n=z(1) numel=(m*n) k=(numel) for p=1:(k-1) for i=1:(m-1) q=i-1; if(p==m) v(i)=v(m) end end end end Programma che serve per creare una matrice (3*3) con numeri casuali: Function[matr]=matrice(v,n) s=0 for i=1:5 for j=1 if i~=1,2,4,6,8 v(n)=[i,j] else s=1 j=j+1 end end end end Programma che calcola il prodotto delle diagonali di 2 matrici generiche: function[prodotto]=prodotto(a,d) for i=1:3 for j=1:3 k(i)=a(i,j)*d(j) end end end 3 Programma che calcola il minore di una matrice : function[minore]=minore(A) k=size(A); s=0; % colonna che voglio eliminare j=2; % riga che voglio eliminare i=2; for z=1:k(2) if z~=j B(:,z-s)=A(:,z); else s=1; end end B s=0; for z=1:k(1) if z~=i C(z-s,:)=B(z,:); else s=1; end end C d=((-1)^(i+j))*det(C) Programma in matlab che calcola potenza e tensione di un circuito elettrico : function[part]=part(r1,r2) for x=-20:20 I=x/(r1+r2) y=r2*I end plot(x,y) end Programma in matlab che indica se un’equazione di primo grado e possibile e impossibile : function[equaz]=equaz(a,b) if ( a~=0 ) x=b/a elseif ( b ~= 0) message = ['IMPOSSIBLE'] else message =('INDETERMINATA') end 4 Programma in matlab che indica il numero massimo (Max) e il numero minimo (min) di una generica matrice M Programmazione in Matlab. function[xmin,xmax]= minmax(a,m,n) xmin=a(1,1); xmax=a(1,1); for i=1:m for j=1:n if (a(i,j))>xmax xmax=a(i,j) end if (a(i,j))<xmin xmin=a(i,j) end end end Programma che calcola la temperatura in un cassone d’acqua: function[tm]=temperatura(tfi,ff,tc,fc,tfine) %inizio del programma %tfi temperatura acqua fredda %ff flusso acqua fredda %tc temperatura acqua calda %fc flusso acqua calda for t=1:tfine tm(t+1)=(ff(t)*tfi(t)+fc(t)*tc(t))/(ff(t)+fc(t)) end end Programma in matlab che divide un generico vettore v in due parti e lo riordina in modo crescente: function[divvett]=divvett(v) z=size(v) n=z(2)/2 for i=1:n m(i)=v(n) n=n-1 end n end k=n+1 for i=1:k m(k)=v(i) end end Programma in matlab che studia l’andamento di carica e scarica di un condensatore: function[carica]=carica(E,r,c) for t=0:100 Vo=E(1-[exp(-t/(r*c))] end plot(t,Vo) end