Главная страница

лаба4. Лабораторная_работа_2_MATLAB (1). Лабораторная работа 2 Работа с матрицами в Matlab


Скачать 379.5 Kb.
НазваниеЛабораторная работа 2 Работа с матрицами в Matlab
Анкорлаба4
Дата23.12.2022
Размер379.5 Kb.
Формат файлаdoc
Имя файлаЛабораторная_работа_2_MATLAB (1).doc
ТипЛабораторная работа
#861068
страница3 из 5
1   2   3   4   5

Листинг 6. Файл-функция для вычисления кусочно-заданной функции


function f=pwf(x)

if x<-1

f=1-exp(-1-x);

elseif x<=2

f=x^2-x-2;

else

f=2-x;

end

Ход работы программы может определяться значением некоторой переменной (переключателя). Такой альтернативный способ ветвления программы основан на использовании оператора переключения switch. Переменная-переключатель помещается после switch через пробел. Оператор switch содержит блоки, начинающиеся со слова case, после каждого case записывается через пробел то значение переключателя, при котором выполняется данный блок. Последний блок начинается со слова otherwise, его операторы работают в том случае, когда ни один из блоков case не был выполнен. Если хотя бы один из блоков case выполнен, то происходит выход из оператора switсh и переход к оператору, следующему за end.

Предположим, что требуется найти количество единиц и минус единиц в заданном массиве и, кроме того, найти сумму всех элементов, отличных от единицы и минус единицы. Следует перебрать все элементы массива в цикле, причем в роли переменной-переключателя будет выступает текущий элемент массива. Листинг 7 содержит файл-функцию, которая по заданному массиву возвращает число минус единиц в первом выходном аргументе, число единиц — во втором, а сумму — в третьем.

Листинг 7. Файл-функция mpsum

function [m,p,s]=mpsum(x)

m=0;

p=0;

s=0;

for i=1:length(x)

switch x(i)

case -1

m=m+1;

case 1

p=p+1;

otherwise

s=s+x(i);

end

end

Блок case может быть выполнен не только при одном определенном значении переключателя, но и в том случае, когда переключатель принимает одно из нескольких допустимых значений. В этом случае значения указываются после слова case в фигурных скобках через запятую, например: case {1,2,3}.

Досрочное завершение цикла while или for осуществляется при помощи оператора break.

Пусть, например, требуется по заданному массиву x образовать новый массив y по правилу до первого нулевого элемента , т.е. до тех пор, пока имеет смысл операция деления. Номер первого нулевого элемента в массиве x заранее неизвестен, более того, в массиве x может и не быть нулей. Решение задачи состоит в последовательном вычислении элементов массива y и прекращении вычислений при обнаружении нулевого элемента в x. Файл-функция, приведенная на листинге 8, демонстрирует работу оператора break.

Листинг 8. Использование оператора break для выхода из цикла


function y=div(x)

for k=1:length(x)-1

if x(k)==0

break

end

y(k)=x(k+1)/x(k);

end


Практическая часть



Написать файл-функции для решения поставленных далее задач.

Сохранить их в отдельных m-файлах.

Вызвать созданные файл-функции из командной строки.


Задание 1.


Введите матрицы



и найдите значения следующих выражений.

Варианты:



Выражение

1



2



3



4



5



6



7



8



9



10



11



12



13



14



15



16


1   2   3   4   5


написать администратору сайта