Sunteți pe pagina 1din 3

Programarea si utilizarea calculatoarelor in inginerie

LABORATORUL NR. 8

UTILIZAREA MEDIULUI DE LUCRU MATLAB Indicatii de rezolvare a problemelor din biletele de examen - ses. iarna 2010 (ref. la utilizarea fisierelor tip functie)

Tema 1

Sa se scrie o functie Matlab care sa calculeze transpusa unei matrice. Functia definita nu trebuie sa utilizeze comanda Matlab transp; aceasta comanda va fi utilizata in zona de comanda pentru testarea functiei definite si validarea rezultatelor obtinute.

Variante de definire a functiei function [tmatrice] = transpusa_1 (matrice_ini) marime_mat = size(matrice_ini); nr_linii = marime_mat(1); nr_coloane = marime_mat(2); for i=1:1:nr_linii for j=1:1:nr_coloane tmatrice(j,i) = matrice_ini(i,j); end end

varianta solicitata

function [tmatrice] = transpusa_2 (matrice_ini) tmatrice = transp(matrice_ini); varianta interzisa Sa se testeze cele doua functii in spatiul de lucru al Matlab-ului.

Tema 2

Sa se scrie o functie Matlab care sa evalueze suma a doua matrice patratice cu n linii si n coloane. Functia va avea ca variabile de intrare dimensiunea comuna n si valorile elementelor celor doua matrice si ca variabila de iesire matricea rezultat.

Variante de definire a functiei

Programarea si utilizarea calculatoarelor in inginerie

function [suma_mat] = adunare_mat(dimensiune, mat_1, mat_2) for i=1:1:dimensiune for j=1:1:dimensiune suma_mat(i,j) = mat_1(i,j) + mat_2(i,j); end end

function [sum]=ad_mat(m1,m2) sum=m1+m2;

function [sum]=ad_mat(m1,m2) if size(m1) == size(m2) sum=m1+m2; else disp('op. de adunare nu se poate efectua');

Tema 3

Sa se scrie o functie Matlab care sa evalueze produsul unei matrice cu un scalar. Variabilele de intrare la apelul functiei vor fi: numarul de linii, numarul de coloane, valorile elementelor matricei si valoarea scalarului; variabila de iesire va fi matricea rezultat.

Varianta de definire a functiei function [ mat_rez ] = prod_mat_scalar( nr_lin,... nr_col, mat_ini, scalar ) for i=1:1:nr_lin for j=1:1:nr_col mat_rez = mat_ini * scalar; end end Sa se testeze cele doua functii in spatiul de lucru al Matlab-ului.

Tema 4

Sa se scrie o functie Matlab care sa calculeze sumele elementelor situate pe fiecare linie a unei matrice. Variabilele de intrare la apelul functiei vor fi: numarul de linii, numarul de coloane, valorile elementelor matricei; variabila de iesire va fi un vector cu lungimea egala cu numarul liniilor matricei initiale si care va contine valorile sumelor respective.

Varianta de definire a functiei

Programarea si utilizarea calculatoarelor in inginerie

function [ vect_sume ] = suma_lin_mat( nr_lin, nr_col, mat) for i=1:1:nr_lin vect_sume(i) = 0; for j=1:1:nr_col vect_sume(i) = vect_sume(i) + mat(i,j); end end Sa se testeze cele doua functii in spatiul de lucru al Matlab-ului.

Tema 5

Sa se scrie o functie Matlab care sa calculeze sumele elementelor situate pe fiecare coloana a unei matrice. Variabilele de intrare la apelul functiei vor fi: numarul de linii, numarul de coloane, valorile elementelor matricei; variabila de iesire va fi un vector cu lungimea egala cu numarul coloanelor matricei initiale si care va contine valorile sumelor respective.

Varianta de definire a functiei function [ vect_sume ] = suma_col_mat( nr_lin, nr_col, mat ) for j=1:1:nr_col vect_sume(j) = 0; for i=1:1:nr_lin vect_sume(j) = vect_sume(j) + mat(i,j); end end Sa se testeze cele doua functii in spatiul de lucru al Matlab-ului.

Tema 6

Sa se scrie o functie Matlab care sa calculeze suma elementelor situate pe diagonala principala a unei matrici patratice. Variabilele de intrare la apelul functiei vor fi: numarul de linii (egal cu numarul de coloane) si valorile elementelor matricei; variabila de iesire va fi o variabila cu valoarea egala cu suma calculata.

Variante de definire a functiei function [ rezultat ] = suma_diag_mat( dimens, mat ) rezultat = 0; for i=1:1:dimens for j=1:1:dimens if (i==j) rezultat = rezultat + mat(i,j); end end end function [ rezultat ] = suma_diag_mat_simpla( dimens, mat ) rezultat = 0; for i=1:1:dimens rezultat = rezultat + mat(i,i); end