Міністерство освіти і науки України
Національний транспортний університет
Кафедра інформаційних систем і технологій
Лабораторна робота №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
Висновок:під час лабораторної роботи я набув практичних навичок зі створення програм-функцій.