Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Операции над матрицами и векторами
· поэлементные операции (поэлементное умножение и деление матриц одинакового размера, поэлементное возведение в степень). Признак поэлементной операции – точка перед знаком операции. Знаки, обозначающие соответствующие поэлементные операции эквиваленты векторным поэлементным операциям. · матричные операции (сложение и вычитание матриц одинаковых размеров, умножение матрицы на число, умножение матрицы на матрицу; возведение матрицы в целую степень, транспонирование матрицы(знак апостроф ’)). Перечисленные операции выполняются в 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 не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |