Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Операции над матрицами и векторами




· поэлементные операции (поэлементное умножение и деление матриц одинакового размера, поэлементное возведение в степень). Признак поэлементной операции – точка перед знаком операции. Знаки, обозначающие соответствующие поэлементные операции эквиваленты векторным поэлементным операциям.

· матричные операции (сложение и вычитание матриц одинаковых размеров, умножение матрицы на число, умножение матрицы на матрицу; возведение матрицы в целую степень, транспонирование матрицы(знак апостроф ’)). Перечисленные операции выполняются в MATLAB с помощью обычных арифметических операторов.

Некоторые функции для работы с векторами и матрицами.

size(A) – определяется размер массива;

length(a) – определяется количество элементов вектора;

sort(a) – сортировка элементов вектора по возрастанию, где а – вектор. Если аргумент - матрица, тогда в результатефункция упорядочивает каждый столбец матрицы отдельно;

max(a) и min(a) – соответственно определение максимального (минимального) элемента вектора. Если аргумент этой функции - матрица, то результат – вектор-строка состоящая из максимальных (минимальных) элементов в соответствующих столбцах матрицы;

dot(a,b) – скалярное произведение векторов a и b. Другой способ - использование поэлементного умножения и функции sum – суммирования элементов вектора:     sum(a.*b);

eig(A) – возвращает вектор собственных значений матрицы А; [T,J]=eig(A)дает матрицу T, столбцы которой – собственные вектора матрицы A, и диагональную матрицу Jс собственными значениями матрицы А;

inv(A)возвращает обратную матрицук матрице А.

Пример выполнения практической работы 5

Дан массив C(m), m £30. Найти сумму и количество положительных элементов (>0 ) и произведение и количество отрицательных элементов (<0). Если какой-либо вид элементов отсутствует − выдать об этом соответствующее сообщение на печать.

Пусть в файле с inpdata.datсодержатся данные:

1.00 2.00 3.00 -4.00 5.00 6.00 -7.00 8.00 -9.00 10.00

Текст М-файла:

fid=fopen('inpdata.dat','rt')

C=str2num(fgetl(fid));

n=length(C);

disp('Исходный массив С');

fprintf('%6.2f',C);

kp=0;km=0;sp=0;pm=1;

for i=1:n

if C(i)>0

    sp=sp+C(i);

    kp=kp+1;

elseif C(i)<0

    pm=pm*C(i);

    km=km+1;

end

end

ifkp==0

fprintf ('\n Положительных элементов нет');

else

fprintf ('\n количество c(i)>0: %4d',kp);

fprintf ('\n сумма c(i)>0: %12.4f',sp);

end

ifkm==0

fprintf('\n Отрицательных элементов нет');

else

fprintf('\n количество c(i)<0: %4d',km);

fprintf('\n произведение c(i)<0: %12.4f',pm);

end

 

Результат:

Исходный массив С

1.00 2.00 3.00 -4.00 5.00 6.00 -7.00 8.00 -9.00 10.00

количество c(i)>0: 7

сумма c(i)>0: 35.000

количество c(i)<0: 3

произведение c(i)<0: -252.000

 

Контрольные вопросы к практической работе 5

1. Какой результат будет в результате выполнения кода

>> a=[1 2];

>> b=[3 4];

>>C=[a; b]

2. Какой результат будет в результате выполнения кода

>> A=[8 1 6; 3 5 7; 4 9 2];

>> В=[А А+16;А+32 А+16]

3. Что будет в результате >> 1:5

4. Что будет в результате >>5:2

5.Для матрицы М =[1 2 3;4 100 6; 7 8 9];

задана операция >>M(:,3). Какойбудет результат?

6. Для матрицы >> М=[1 2 3; 4 5 6; 7 8 9];

заданы действия:

>> М(:,2)=[ ]

>> М(2,:)=[ ]

Какойбудет результат?

 

Тема 6 Вычисление скалярного произведения векторов

Файл функция. Основные операции с файл-функцией.

Создание файла-функции. Файл-функция позволят также, как и файл-программа (m-файл)сохранить набор команд на языке MATLAB в текстовых файлах с расширением .mОтличительной особенностью файл-функций является возможность передавать входные и выходные параметры.

Общаяструктурафункции:

function [ output_arg ]= Untitled (input_arg)

%UNTITLED Summary of this function goes here -общее

%описание функции

%Detailedexplanationgoeshere - детальное описание

%функции

ТЕЛО ФУНКЦИИ

end

Пример 6.1. Создадим файл-функцию, вычисляющий значение функции  и присвоим этой функции уникальное имя sample1. Описание функции в редакторе кода в этом случае будет выглядеть так:

functionf=sample1(x)

%SAMPLE1 вычисляет значение функции

% f(x)=x.^4+4*x.^3-6*x.^2+12*x-1

f=x.^4+4*x.^3-6*x.^2+12*x-1

end

Вызов функции. Использовать созданную функцию можно как в командном режиме, также, как и любую встроенную функцию системы MATLAB, так и вызвать из других файл-программ или файл-функций. При вызове файл-функции следует указать все ее входные и выходные параметры.

Для нашего примера единственным обязательным входным параметром являетсяx. Вычислим значение функции sample1 при x=3, а результат присвоим переменной y.Получим:

>>y=sample1(3)

y= 170

Файл-функция с несколькими входными и выходными параметрами

Если функция возвращает несколько выходных параметров, то в этом случае синтаксис описания функции полностью соответствует тому виду, что формирует система MATLAB при создании файла функции.

function [ output_arg ]= Untitled (input_arg)

Вызов такой функции используется как отдельная инструкция вида:

[var1,va2,... ]=f_nаmе(Список_параметров)










Последнее изменение этой страницы: 2018-06-01; просмотров: 189.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...