В каждом столбце найти минимум. disp('введите эл. матрицы');

n=input('введите n=');

m=input('введите m=');

disp('введите эл. матрицы');

for i=1:n

for j=1:m

X(i,j)=input('X(i,j)=');

end

end

disp('исходная матрица')

disp(X)

for j=1:m

minX=X(1,j);

for i=1:n

if X(i,j)< minX

minX=X(i,j);

end

end

disp(sprintf('мин.зн. %2d столбца=%5.3f', j,minX))

end

Пример

В каждой строке найти количество элементов X<=A(i,j)<=Y

x=input('введите x=');

y=input('введите y=');

n=input('введите n=');

m=input('введите m=');

disp('введите эл. матрицы');

for i=1:n

for j=1:m

A(i,j)=input('A(i,j)=');

end

end

disp('исходная матрица')

disp(A)

for i=1:n

k=0;

for j=1:m

if A(i,j)>=x && A(i,j)<=y

k=k+1;

end

end

disp(sprintf('в строке № %2d количество эл.=%2d', i,k))

end

 

Матричные операции

Как уже говорилось, в MLможно не только выполнять обычные арифметические операции над числами и вычислять значения функций, но и производить операции над векторами и матрицами. Все арифметические операции являются “матричными” и осуществляются по правилам линейной алгебры. Примеры

В ML возможно выполнять операции поэлементного преобразования и использовать операции, соответствующие правилам векторного исчисления.

Векторы можно использовать как аргументы математических функций. Например, sin(X). Результатом будет вектор, элементы которого будут равны значению sin соответствующего элемента исходного вектора. Функции от векторов вычисляются поэлементно.

Также можно выполнять с векторами поэлементные операции. Эти операции могут выполняться только над векторами одинакового размера и типа.

Добавим операции к уже известным.

К арифметическим операциям следует добавить транспонирование (‘) Обратное деление? .

Тогда приоритеты АО:

· возведение в степень, транспонирование;

· умножение, деление;

· сложение, вычитание.

При необходимости поэлементного выполнения операций над матрицами и векторами перед знаками операций ^, *, /, \ следует ставить точку:

.^, .*, ./, .\

Например, результатом поэлементного умножения 2-х векторов будет вектор, каждый элемент которого равен произведению соответствующих элементов исходных векторов. Тоже самое относится к операциям деления и возведения в степень.

Обратное деление (.\) – деление 2-го вектора на первый.

Транспонирование тоже бывает с точкой, тогда для комплексных чисел оно выполняется без комплексного сопряжения.

Векторное исчисление предусматривает следующие операции над векторами: сложение и вычитание векторов одинакового размера, транспонирование векторов, умножение вектора на число, вектора на вектор (одинакого размера и один из них вектор –столбец, другой – вектор – строка или наооборот), скалярное и векторное произведение векторов.

Все действия с матрицами определены в математике.

Следует помнить:

что операция + и - определена только для сложения/ вычитания одинаковых векторов (можно суммировать или вычитать вектор - строки или вектор – столбцы одинаковой длины).

Умножение вектора на число осуществляется операцией * (без точки). Результат с точкой такой же.

Пусть ввели с клавиатуры вектор X, содержащий следующие значения: 1, 2, 3, 4

>> X*2

ans =

2 4 6 8

>> X.*2

ans =

2 4 6 8

Операция умножение (с точкой) вектора на вектор определена только для векторов одинакового размера (.*).

Y=[3 4 5 6];

При попытке использовать обычное умножение – ошибка.

>> X*Y

??? Error using ==> mtimes

Inner matrix dimensions must agree.

>> X.*Y

ans =

3 8 15 24

Возведем каждый элемент вектора в квадрат

>> X.^2

Получим

ans =

1 4 9 16

В данном случае каждый элемент исходного вектора возводится в квадрат. Выполнение команды X ^ 2 (без точки перед возведением в степень) невозможно, так как это противоречит правилам матричной алгебры. На экране будет:

??? Error using ==> mpower

Inputs must be a scalar and a square matrix.

Введем векторY=3 4 5 6

Y =

3 4 5 6

Умножение вектор-строки на вектор-столбец – результат - число

>> X*Y'

ans =

Умножение вектора-столбца на вектор-строку, результат – матрица

>> X'*Y

ans =

3 4 5 6

6 8 10 12

9 12 15 18

12 16 20 24

Для матриц

Над матрицами возможны поэлементные операции и матричные, соответствующими правилам матричного исчисления.

Умножение и деление матриц одинаковых размеров. Результат – матрица.

Возведение в степень.

Поэлементное вычисление функций от матриц.

Умножение матрицы на число, результат – матрица.

При умножении матриц число столбцов первой матрицы должно быть равно числу строк второй.

Матричное исчисление определяет операции: Может, Матлаб?

Сложение и вычитание матриц

Умножение матрицы на число

Умножение матрицы на матрицу

Возведение в целую степень

Транспонирование Деление?

Операции отношения используются для поэлементного сравнения двух операндов (чисел, матриц, векторов одинакового размера). Результатом операции отношения может быть соответственно число, матрица или вектор, состоящие из элементов, обозначающих «истина» или «ложь». В ML это 1 и 0 соответственно:

>>A=[1 0 3; -2 5 -6];

>> B=[8 -9 1; 7 2 2];

>> A>B

ans =

0 1 1

0 1 0

В результате получили матрицу, каждый элемент которой имеет значение «истина» или «ложь»:

>> x=1; y=2; z=3;

>> ((x+y)==z)+(y<z)+(x<=y)

ans =

Логические операции такие же. Логические операции предназначены для выполнения поэлементных логических операций над векторами и матрицами одинаковых размеров. К логическим операциям относятся логическое И(&), логическое ИЛИ (|), логическое НЕ (~).

Вместо логических операций можно пользоваться логическими операторами (функциями) and, or, not соответственно. Логические операторы определены над матрицами одинаковой размерности и выполняются над каждым из элементов.

Приоритет операций в ML (включая матричные)

Приоритет операций определяет порядок действий в выражении. Его можно изменять с помощью круглых скобок. Далее представлены операции в порядке убывания приоритета:

1) логическая операция НЕ (~);

2) транспонирование(.’, ’),возведение в степень(.^, ^);

3) унарный плюс (+), унарный минус (-);

4) умножение и деление(.*, ./, .\, *, /, \);

5) сложение и вычитание (+, -);

6) операции отношения (<, >, <=, >=, ==, ~=);

7) логическая операция И(&);

8) логическая операция ИЛИ(|).

 








Дата добавления: 2016-03-22; просмотров: 627;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.016 сек.