Progress-servis55.ru

Новости из мира ПК
32 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Length matlab описание

Основные математические функции MatLab

MatLab содержит в себе все распространенные математические функции, которые доступны по их имени при реализации алгоритмов. Например, функция sqrt() позволяет вычислять квадрат числа и может быть использована в программе следующим образом:

x = 2;
y = 4;
d = sqrt(x^2+y^2); %вычисление евклидового расстояния

Аналогичным образом вызываются и все другие математические функции, представленные в табл. 1.2.

Таблица 1.2. Основные математические функции MatLab

sqrt(x)вычисление квадратного корня
exp(x)возведение в степень числа e
pow2(x)возведение в степень числа 2
log(x)вычисление натурального логарифма
log10(x)вычисление десятичного логарифма
log2(x)вычисление логарифма по основанию 2
sin(x)синус угла x, заданного в радианах
cos(x)косинус угла x, заданного в радианах
tan(x)тангенс угла x, заданного в радианах
cot(x)котангенс угла x, заданного в радианах
asin(x)арксинус
acos(x)арккосинус
atan(x)арктангенс
piчисло пи
round(x)округление до ближайшего целого
fix(x)усечение дробной части числа
floor(x)округление до меньшего целого
ceil(x)округление до большего целого
mod(x)остаток от деления с учётом знака
sign(x)знак числа
factor(x)разложение числа на простые множители
isprime(x)истинно, если число простое
randгенерация псевдослучайного числа с равномерным законом распределения
randnгенерация псевдослучайного числа с нормальным законом распределения
abs(x)вычисление модуля числа

Почти все элементарные функции допускают вычисления и с комплексными аргументами. Например:

res = sin(2+3i)*atan(4i)/(1 — 6i); % res = -1.8009 — 1.9190i

Ниже показан пример задания вектора с именем a, и содержащий значения 1, 2, 3, 4:

a = [1 2 3 4]; % вектор-строка

Для доступа к тому или иному элементу вектора используется следующая конструкция языка:

disp( a(1) ); % отображение значения 1-го элемента вектора
disp( a(2) ); % отображение значения 2-го элемента вектора
disp( a(3) ); % отображение значения 3-го элемента вектора
disp( a(4) ); % отображение значения 4-го элемента вектора

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

a(2) = 10; % изменение значения 2-го элемента на 10

Часто возникает необходимость определения общего числа элементов в векторе, т.е. определения его размера. Это можно сделать, воспользовавшись функцией length() следующим образом:

N = length(a); % (N=4) число элементов массива а

Если требуется задать вектор-столбец, то это можно сделать так

a = [1; 2; 3; 4]; % вектор-столбец

b = [1 2 3 4]’; % вектор-столбец

при этом доступ к элементам векторов осуществляется также как и для векторов-строк.

Следует отметить, что векторы можно составлять не только из отдельных чисел или переменных, но и из векторов. Например, следующий фрагмент программы показывает, как можно создавать один вектор на основе другого:

a = [1 2 3 4]; % начальный вектор a = [1 2 3 4]
b = [a 5 6]; % второй вектор b = [1 2 3 4 5 6]

Здесь вектор b состоит из шести элементов и создан на основе вектора а. Используя этот прием, можно осуществлять увеличение размера векторов в процессе работы программы:

a = [a 5]; % увеличение вектора а на один элемент

Недостатком описанного способа задания (инициализации) векторов является сложность определения векторов больших размеров, состоящих, например, из 100 или 1000 элементов. Чтобы решить данную задачу, в MatLab существуют функции инициализации векторов нулями, единицами или случайными значениями:

a1 = zeros(1, 100); % вектор-строка, 100 элементов с
% нулевыми значениями
a2 = zeros(100, 1); % вектор-столбец, 100 элементов с
% нулевыми значениями
a3 = ones(1, 1000); % вектор-строка, 1000 элементов с
% единичными значениями
a4 = ones(1000, 1); % вектор-столбец, 1000 элементов с
% единичными значениями
a5 = rand(1000, 1); % вектор-столбец, 1000 элементов со
% случайными значениями

Матрицы в MatLab задаются аналогично векторам с той лишь разницей, что указываются обе размерности. Приведем пример инициализации единичной матрицы размером 3х3:

E = [1 0 0; 0 1 0; 0 01]; % единичная матрица 3х3

E = [1 0 0
0 1 0
0 0 1]; % единичная матрица 3х3

Аналогичным образом можно задавать любые другие матрицы, а также использовать приведенные выше функции zeros(), ones() и rand(), например:

A1 = zeros(10,10); % нулевая матрица 10х10 элементов

A2 = zeros(10); % нулевая матрица 10х10 элементов
A3 = ones(5); % матрица 5х5, состоящая из единиц
A4 = rand(100); % матрица 100х100, из случайных чисел

Для доступа к элементам матрицы применяется такой же синтаксис как и для векторов, но с указанием строки и столбца где находится требуемый элемент:

A = [1 2 3;4 5 6;7 8 9]; % матрица 3х3
disp( A(2,1) ); % вывод на экран элемента, стоящего во
% второй строке первого столбца, т.е. 4
disp( A(1,2) ); % вывод на экран элемента, стоящего в
% первой строке второго столбца, т.е. 2

Также возможны операции выделения указанной части матрицы, например:

B1 = A(:,1); % B1 = [1; 4; 7] – выделение первого столбца
B2 = A(2,:); % B2 = [1 2 3] – выделение первой строки
B3 = A(1:2,2:3); % B3 = [2 3; 5 6] – выделение первых двух
% строк и 2-го и 3-го столбцов матрицы А.

Размерность любой матрицы или вектора в MatLab можно определить с помощью функции size(), которая возвращает число строк и столбцов переменной, указанной в качестве аргумента:

a = 5; % переменная а
A = [1 2 3]; % вектор-строка
B = [1 2 3; 4 5 6]; % матрица 2х3
size(a) % 1х1
size(A) % 1х3
size(B) % 2х3

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: При сдаче лабораторной работы, студент делает вид, что все знает; преподаватель делает вид, что верит ему. 9888 — | 7543 — или читать все.

length

Length of largest array dimension

Syntax

Description

L = length( X ) returns the length of the largest array dimension in X . For vectors, the length is simply the number of elements. For arrays with more dimensions, the length is max(size(X)) . The length of an empty array is zero.

Читать еще:  Методы защита бд

Examples

Number of Vector Elements

Find the length of a uniformly spaced vector in the interval [5,10] .

Length of Rectangular Matrix

Find the length of a 3-by-7 matrix of zeros.

String Array

Create a string array and compute its length, which is the number of elements in each row.

Length of Structure Fields

Create a structure with fields for Day and Month . Use the structfun function to apply length to each field.

Input Arguments

X — Input array
scalar | vector | matrix | multidimensional array

Input array, specified as a scalar, vector, matrix, or multidimensional array.

Complex Number Support: Yes

To find the number of characters in a string or character vector, use the strlength function.

length does not operate on tables. To examine the dimensions of a table, use the height , width , or size functions.

Extended Capabilities

Tall Arrays
Calculate with arrays that have more rows than fit in memory.

This function fully supports tall arrays. For more information, see Tall Arrays.

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.

This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.

This function fully supports distributed arrays. For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).

See Also

Introduced before R2006a

Open Example

A modified version of this example exists on your system. Do you want to open this version instead?

MATLAB Command

You clicked a link that corresponds to this MATLAB command:

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

Стандартные функции Matlab

Все операции в Matlab ориентированы прежде всего на работу с матрицами, но могут выть использованы при работе с векторами и скалярными переменными.

Элементарные функции Matlab. К ним относятся следующие функции:

sin(x) sinh(x) asin(x) asinh(x)

cos(x) cosh(x) acos(x) acosh(x)

tan(x) tanh(x) atan(x) atan2(x,y) atanh(x)

cot(x) coth(x) acot(x) acoth(x)

exp(x) log(x) log10(x) log2(x) pow2(x) sqrt(x)

Функции комплексного аргумента:

abs(z) – модуль комплексного числа; angle(z) – аргумент;

complex(x, y) – формирование комплексного числа x+y*i;

conj(z) – возвращает комплексно-сопряженное (по отношению к z) число;

real(z) – возвращает действительную часть; imag(z) – мнимую часть.

Функции округления и нецелочисленного деления:

fix(x) – округление в сторону к нулю, floor(x) – к –¥, ceil(x) – к +¥,

round(x) – до ближайшего целого;

mod(x, y) – остаток от деления x/y с учетом знака,

rem(x, y) – то же, без учета знака;

sign(x) – знак числа (+1/–1).

Элементарные функции, как и всякие другие, имеют один результат (массив). Элементарные функции могут быть использованы с одинаковым синтаксисом как для чисел, так и для массивов.

Пример 1. Разный тип параметров

» x=-8; X=[5 -1 -2]; A=[1 2 -3; -5 6 7]; z=3-4i;

Различают матричные и поэлементные арифметические операции.

+ – уточнение знака (унарная), сложение;

– – изменение знака (унарная), вычитание;

Поскольку математический смысл операций матричного и поэлементного сложения и вычитания идентичен:

C = A ± B означает

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

* – скалярное матричное умножение;

^ – матричное возведение в степень;

.^ – поэлементное возведение в степень;

– матричное деление слева;

/ – матричное деление справа;

.’ – несопряженное транспонирование (унарная).

Все арифметические операции, за исключением указанных, являются бинарными.

В операциях +, –, .*, ./ и .^ либо оба операнда должны иметь одинаковую размерность, либо один из операндов должен быть скалярной величиной.

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

7.0000 4.0000 3.0000

0.7500 0.4000 0.1667

0.7000 0.8000 0.9000

0.3000 0.2000 0.1000

Для операции * (матричное произведение) матрица-сомножитель2 должна иметь столько строк, сколько столбцов имеет матрица-сомножитель1:

Inner matrix dimensions must agree.

Операции транспонирования ‘ и .’ для матриц с действительными коэффициентами абсолютно равнозначны:

Для комплексных чисел и матриц с комплексными коэффициентами операция ‘ дает транспонированную сопряженную матрицу, а операция .’ – транспонированную несопряженную:

» Ac=[1+2i 1+3i 1+4i; 2+3i 2+4i 2+5i];

1.0000 — 2.0000i 2.0000 — 3.0000i

1.0000 — 3.0000i 2.0000 — 4.0000i

1.0000 — 4.0000i 2.0000 — 5.0000i

1.0000 + 2.0000i 2.0000 + 3.0000i

1.0000 + 3.0000i 2.0000 + 4.0000i

1.0000 + 4.0000i 2.0000 + 5.0000i

Операция ^ (матричное возведение в степень) выполняется только для квадратных матриц, и означает умножение матрицы саму на себя заданное число раз (второй операнд обязательно скаляр):

Читать еще:  Matlab plot параметры

-0.9100 — 3.5442i 0.4163 + 1.6212i

0.6244 + 2.4318i -0.2856 — 1.1124i

генерирует обратную матрицу D -1 .

Операция X/Y эквивалентна X*Y -1 , операция XY – операции X -1 *Y.

Последняя операция широко используется при решении систем линейных уравнений вида

Действительно, представив систему уравнений в матричной форме:

и умножив обе части последнего уравнения на A -1 слева, получим:

A -1 * A * X = A -1 * B,

откуда решение системы уравнений:

Пример. Решить систему уравнений

Решение сводится к набору в интерактивном режиме следующих команд:

Проверку вычисления корней можно выполнить следующим образом:

| – логическое «или» (0|0 – 0, 1|0 – 1, 0|1 – 1, 1|1 – 1);

xor – логическое исключающее «или» (0xor0 – 0, 0xor1 – 1, 1xor0 – 1, 1xor1 – 0);

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

Операции отношения (сравнения)

> – больше; >= – больше или равно; 1

» A=[1 8 3; 6 2 5]; B=[4 3 1; 2 6 8];

» A d 0 , 10 dk ]. Шаг по показателю степени hd= . Отношение двух соседних элементов есть величина постоянная =10 hd .

10 100 1000 10000

1.0000 2.0000 3.0000 4.0000

zeros – матрица, состоящая из нулей; ones – матрица, состоящая из единиц;

rand – матрица, состоящая из случ. чисел с равномерным распределением;

randn – матрица, состоящая из случ. Чисел с нормальным распределением.

zeros(n) – формирует квадратную матрицу n´n, состоящую из нулей;

zeros(m, n) – формирует матрицу m´n, состоящую из нулей;

(zeros(1, n) – вектор-строка; zeros(m, 1) – вектор-столбец)

zeros(size(A)) – формирует матрицу, состоящую из нулей, той же размерности, что и матрица A.

Формат обращения к функциям ones, rand и randn аналогичный.

Разницу между функциями rand и randn можно показать графически:

» xr=rand(1,100); xrs=sort(xr); bar(xrs)

» yr=randn(1,100); yrs=sort(yr); bar(yrs)

eye(n) – формирует единичную диагональную матрицу n´n.

diag(B) (B – двухмерная матрица) – выделяет главную диагональ матрицы B и помещает ее в вектор-столбец;

diag(x) (x – вектор) – формирует диагональную матрицу, используя вектор x в качестве главной диагонали.

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

Манипуляции с матрицами

tril (A) – формирует треугольную матрицу как нижнюю часть от матрицы A;

triu(A) – формирует треугольную матрицу как верхнюю часть от матрицы А.

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

lu(A) – разложение Холецкого – заменяет квадратную матрицу A скалярным произведением двух треугольных матриц L и U методом Гаусса:

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

0.5714 0.5000 1.0000

7.0000 8.0000 9.0000

inv(A) – возвращает матрицу A -1 , обратную заданной квадратной матрице A;

det(A) – возвращает определитель квадратной матрицы A.

fliplr(A) – поворот матрицы A на 180° в горизонтальном направлении;

flipud(A) – поворот матрицы A на 180° в вертикальном направлении;

rot90(A) – поворот матрицы A на 90° против часовой стрелки;

rot90(A, k) – поворот матрицы A на k*90° против часовой стрелки (k – целое число).

Манипуляции с векторами

cross(x, y) – векторное произведение векторов x и y в трехмерном пространстве;

cross(A, B, dim) – векторное произведение многомерных массивов A и B по размерности dim;

dot(x, y) – скалярное произведение векторов x и y;

dot(A, B, dim) – скал. произведение многомерных массивов A и B по размерности dim.

Длины векторов x и y, а также длина матриц A и B по размерности dim должны быть равны 3.

Базовые операции анализа

Пусть a,b,c – числа, х,у,z – векторы, А,В,C – матрицы.

c=max(a, b) – возвращает максимальное из двух чисел a и b (при комплексных аргументах по умолчанию сравниваются модули):

z=max(x, y) – вектор той же размерности, что x и y, составленный из максимальных элементов векторов;

C=max(A, B) – матрица той же размерности, что и , составленная из максимальных элементов матриц.

xmax=max(x) – максимальный элемент вектора x;

[xmax, imax]=max(x) – дополнительно записывает адрес максимального элемента в числовую переменную imax (если максимальных элементов несколько, возвращается адрес первого из них);

amax=max(A) – возвращает вектор-строку amax из максимальных элементов столбцов матрицы А;

[amax, imax]=max(A) – дополнительно формируется вектор-строка imax, составленный из номеров строк, в которых расположены максимальные элементы столбцов.

» a=1; b=2; x=[1 3 2]; y=[2 1 3]; A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4];

Length matlab описание

Наборы чисел в программировании принято называть массивами. Всему массиву присваивается одно имя, а доступ к отдельным элементам массива осуществляется по целочисленному индексу, то есть номеру элемента в массиве. Массивы бывают одномерными, когда используется единственный индекс (номер), а могут быть и многомерными (в частности — двумерными).

Сначала рассмотрим одномерные массивы. Это линейные наборы чисел (элементов), в которых позиция каждого элемента задаётся единственным числом — его номером. Можно говорить о первом элементе массива, о втором и т.д.

Для задания одномерного массива, состоящего из нескольких чисел (вещественных или комплексных), используется операция конкатенации, обозначаемая с помощью квадратных скобок — [] . Например, следующее выражение

формирует переменную с именем a1 , являющуюся одномерным массивом из трёх элементов (вещественных чисел). Объединяемые в массив элементы должны отделяться друг от друга либо пробелом, либо запятой. Так что выражение

абсолютно идентично предыдущему.

Для доступа к индивидуальному элементу одномерного массива нужно после его имени указать в круглых скобках индекс (номер) этого элемента. Например, третий элемент массива a1 обозначается как a1(3) , первый элемент — как a1(1) , второй элемент — как a1(2) .

Читать еще:  Поэлементное умножение матриц matlab

Если требуется изменить третий элемент уже сформированного выше операцией конкатенации массива a1 , то можно применить операцию присваивания:

Пусть, к примеру, второй элемент массива a1 должен стать равным среднему арифметическому первого и третьего элементов. Для этого выполняем следующее действие:

Количество элементов в одномерном массиве всегда можно узнать с помощью функции length :

При попытке чтения несуществующего элемента (напрмер, четвёртого элемента массива a1 ) в командном окне MATLABа появляется сообщение об ошибке:

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

В то же время запись несуществующего элемента вполне допустима — она означает добавление нового элемента к уже существующему массиву:

Применяя к массиву a1 функцию length , находим, что количество элементов в этом массиве возросло до четырёх:

То же самое действие — «удлинение массива a1 » ,можно выполнить и с помощью операции конкатенации:

Здесь операндами операции конкатенации являются массив a1 , состоящий из трёх элементов, и добавляемый к нему четвёртый элемент, равный 7 .

Теперь создадим ещё один одномерный массив a2 , причём для его создания не будем использовать операцию конкатенации (как мы поступили выше). Вместо этого будем прописывать каждый элемент создаваемого массива по-отдельности:

a2(1) = 67
a2(2) = 7.8
a2(3) = 0.017

Из двух существующих массивов — массива a1 с четырьмя элементами и массива a2 с тремя элементами, можно одной (групповой) операцией конкатенации создать одномерный массив b из семи элементов:

Массивы могут состоять не только из вещественных чисел. Выражение

d = [ 1+2i, 2+3i, 3-7i ]

формирует одномерный массив d комплексных чисел. Разделителем элементов формируемого одномерного массива может быть либо пробел, либо запятая. При использовании выражений и комплексных чисел использование запятой предпочтительнее.

Теперь рассмотрим двумерные массивы, которые можно трактовать как набор чисел, упорядоченный в виде прямоугольной таблицы, когда для доступа к индивидуальному элементу используется два индекса — номер строки и номер столбца (на пересечении которых и стоит выбранный элемент).

Двумерный массив характеризуется количеством строк и количеством столбцов. Составим массив a3 , состоящий из двух столбцов и трёх строк:

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

Как и в случае одномерных массивов двумерный массив можно создать, индивидуально прописывая его элементы:

a3(1,1) = 1
a3(1,2) = 2
a3(2,1) = 3
a3(2,2) = 4
a3(3,1) = 5
a3(3,2) = 6

Для доступа к отдельным элементам двумерного массива используется выражение с круглыми скобками, в которых через запятую перечисляются его индексы. Первым указывается номер строки, вторым — номер столбца.

Система MATLAB может работать и с массивами больших размерностей. Они будут рассматриваться позже в следующем разделе.

Вернёмся к двумерным массивам, которые в математике принято называть матрицами. Любая строка матрицы является одномерным массивом, и любой столбец матрицы также является одномерным массивом. Однако есть некоторая разница в упорядочении их элементов с точки зрения матриц: элементы первого одномерного массива упорядочены вдоль строк матрицы (горизонтально), а элементы второго — вдоль столбцов (вертикально). Если явно учитывать в понятии одномерного массива эту разницу, то тогда массивы первого типа называют вектор-строками, а второго типа — вектор-столбцами. В этом случае также можно считать, что вектор-строки являются частным случаем матрицы с количеством строк, равным единице, а вектор-столбцы являются частным случаем матрицы с количеством столбцов, равным единице.

В системе MATLAB все одномерные массивы трактуются либо как вектор-строки, либо как вектор-столбцы. До сих пор мы вводили только вектор-строки. Следующее выражение, использующее операцию конкатенации, задаёт вектор-столбец

состоящий из трёх строк, так как точка с запятой в операции конкатенации означает переход на новую строку.

Для массива a4 функция length(a4) возвращает число 3 , так как действительно этот массив состоит из трёх элементов. Функция length не различает вектор-строки и вектор-столбцы.

Если попросить систему MATLAB показать значение переменной a4 , то мы увидим следующую картину:

То есть MATLAB распознаёт «геометрию» этого одномерного массива и наглядно отображает его, располагая элементы для показа в своём окне вертикально.

Чтобы отразить правильно геометрию вектор-столбцов и вектор-строк, а также узнать размеры двумерного массива в обоих направлениях, используют функцию size . Для двумерного массива a3 получается следующий результат:

причём первым показывается число строк, а вторым — число столбцов.

Применяем эту же функцию к одномерным массивам. Вот, что из этого получается для вектор-строки a2

состоящего из одной строки и трёх столбцов. Для вектор-столбца a4 , состоящего из трёх строк и одного столбца, имеем следующий результат применения функции size :

Наконец, попробуем применить эту функцию к переменной, состоящей из единственного числового значения, то есть к скаляру:

var1 = 5
size(var1)
ans =
1 1

Отсюда видно, что система MATLAB трактует даже по-существу скалярные величины как массивы с размером 1×1. Это ровным счётом ничего не меняет для пользователя, так как он может не обращать на это никакого внимания. MATLAB переходит от скаляров к массивам прозрачно, не требуя от пользователя дополнительных действий.

Итак, всё, с чем работает MATLAB, является массивами различной размерности. Все массивы из текущего сеанса работы (текущего Рабочего пространства) можно просмотреть

с точки зрения их структуры с помощью команды whos .

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector