Міністерство освіти і науки України
Національний транспортний університет
Кафедра інформаційних систем і технологій
Лабораторна робота №3.
Варіант – 5.
Київ – 2010 
Лабораторна робота №3
Мова програмування Matlab / Simulink
Мета роботи: набуття практичних навичок створення програм-функцій.
Завдання 1.1.
Скласти программу-функцію Matlab/Simulink для розв’язання задачі обробки одновимірного масиву у загальному вигляді, а обчислення на комп’ютері виконати для конкретних даних згідно з варіантом.
Cформувати масив W з елементів масиву V, що задовольняють умову 
-6 ≤ Vk<10 і не кратні чотирьом, і впорядкувати його на спадання елементів.
V=[11 -3 8 -8 -4 -5 -2 -7 -12 9 4 6 -8 2 0]
Текст функції:
function W= vector(X)
%Масив W з елементів масиву Х, що задовольняють умову:-6<=Х(i)<10 
%і не кратні чотирьом
% Масив W відсортований за спаданням
k=1;
n=length(X);
for i=1:n
if (X(i)<10&&X(i)>=-6&&(mod(X(i),4)~=0))
W(k)=X(i);
k=k+1;
end
end
W=sort(W,'descend');
End
Робота функції:
>> vector(V)
ans =
             9     6     2    -2    -3    -5
Завдання 1.2.
Скласти программу-функцію Matlab/Simulink для розв’язання задачі обробки двовимірного масиву/матриці у загальному вигляді, а обчислення на комп’ютері виконати для конкретних даних згідно з варіантом.
E =       3    -1     7    -1
           -8     0    -1     0
             0   -1     7     5
           -1     0    -1    -5
            3    -1     0    -2
            5    -1     9     0
Сформувати матрицю V, вилучивши з матриці E три останніх її рядки:
Текст функції:
function V= cut(X,n)
%Вилучення з матриці останніх рядків
%Cut(X,n), X-матриця, n-кількість рядків
i=1;
[rows,cols]=size(X);
z=rows-n;
m=cols;
for i=1:z
    for j=1:m
        V(i,j)=X(i,j);
    end
end
end
Робота функції:
>> V=cut(E,3)
V =         3    -1     7    -1
              -8     0    -1     0
                      0    -1     7     5
Сформувати матрицю W, транспонуючи матрицю V:
Текст функції:
function W= transpose(X)
%Функція транспонування матриці
%transpose(X), X-матриця
[rows,cols]=size(X);
for i=1:rows
    for j=1:cols
        W(i,j)=X(j,i)
    end
end
end
Робота функції:
>> W=transpose(V)
W =         3    -8     0
               -1     0    -1
                7    -1     7
                       -1     0     5
сформувати матрицю X як добуток двох матриць E і W:
Текст функції:
%Функція множення матриць
%product(X,Y), X,Y-матриці
[r,c]=size(X);
[r1,c2]=size(Y);
for i=1:r
    for k=1:c2
        s=0;
        for j=1:c
            s=s+X(i,j)*Y(j,k);
            Z(i,k)=s;
        end
    end
end
end
Робота функції:
>> X=product(E,W)
X =         60   -31    45
              -31    65    -7
               45    -7    75
                -5     9   -32
               12   -24    -9
                      79   -49    64
Знайти першу норму матриці X:
Текст функції:
function W=norm1(X)
%Функція знаходження першої норми матриці
%norm1(X), X-матриця
[rows,cols]=size(X);
for i=1:rows
    sum=0;
    for j=1:cols
    sum=sum+abs(X(i,j));
    V(i)=sum;
    end
end
max=V(1);
for i=1:rows
    if (V(i)>max)
        max=V(i);
    end
end
W=max;
end
Робота функції:
>> norm1(X)
ans =    192
Висновок:під час лабораторної роботи я набув практичних навичок зі створення програм-функцій.