Меню сайта
Форма входа
Главная » Статьи » MATLAB » Основы MATLAB

Скаляры и массивы. Индексированные переменные

Скаляры и массивы. Индексированные переменные.

Как уже говорилось, система Matlab создавалась, как средство работы с матрицами, поэтому,  основным видом данных, которые используются в пакете, являются матрицы. Даже скалярные переменные Matlab рассматривает, как матрицу 1х1. Эта особенность системы практически не заметна, поскольку для обращения к элементу матрицы размерности 1х1 (скалярной переменной) указание индексов не обязательно.

 

 >> x = 2;

 

Однако никто не мешает обратиться к единственному элементу массива, задавая один или даже два индекса, указывая их в круглых скобках. Таким образом, записи x, x(1) и x(1,1) являются тождественными.

            Такая особенность системы связана с тем, что вместо обычных индексов, принятых в математике и алгоритмических языках, в компиляторах используют, так называемые, приведенные индексы, определяющие позицию соответствующего элемента массива в оперативной памяти. Так как оперативная память использует линейную адресацию своих ячеек, то для одномерного массива приведенный индекс совпадает с обычным. Для двумерного массива Аmxn (m – число строк, n- число столбцов) приведенный индекс k элемента  Ai,j , зависит от способа распределения элементов в памяти. Matlab по аналогии с Fortran использует отсчет индексов в массивах от 1 и располагает элементы матрицы по столбцам . Matlab наряду с традиционными индексами в многомерных массивах, позволяет пользоваться и единственным приведенным индексом, что несколько повышает скорость вычислений.

 

            Matlab допускает ввод матрицы несколькими способами:

 

  • Вводить полный список элементов
  • Загружать матрицы из внешних файлов
  • Генерировать матрицы, используя встроенные функции
  • Создавать матрицы с помощью ваших собственных функций в m-файлах, или создавать их в процессе выполнения вычислений.

 

При введении матрицы как списка элементов необходимо следовать основным условиям:

·         Элементы строки отделяются пробелами или запятыми

·         Для обозначения окончания каждой строки используется точка с запятой

·         Список элементов ограничивается квадратными скобками.

 

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

A =

     1     2     3

     4     5     6

     7     8     9

 

 

 

 Для обращения к элементу A2,2 достаточно выполнить операцию

 

>> A(2,2)

ans =

     5

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

 

>> A(5)

ans =

     5

 

Попытка обращения к несуществующему элементу приводит к ошибке:

 

>> A(2,9)

??? Индекс за границами матрицы.

 

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

 

>> z(2:5)=3

z =

     0     3     3     3     3

 

Другим применением оператора двоеточие (:) является создание векторов заданного вида. Самыми распространенными из них является формирование упорядоченных числовых последовательностей.

Начальное значение : шаг : конечное значение 

 

Данная конструкция порождает последовательность (массив) чисел, которая начинается с начального значения, идет с заданным шагом и завершается конечным значением.  Если шаг не задан, он принимается равным 1.

 

>> 1:10

ans =

     1     2     3     4     5     6     7     8     9    10

 

>> t=0:0.1:1

t =

   0    0.1000    0.2000    0.3000    0.4000    0.5000    0.6000     0.7000    0.8000    0.9000    1.0000

 

>> t1=1:-0.2:0

t1 =

    1.0000    0.8000    0.6000    0.4000    0.2000         0  

           

Matlab предлагает разнообразные средства для создания типовых матриц.  Функции zeros и ones используются для заполнения матриц нулями и единицами. Заполнение элементов матриц случайными числами с равномерным или нормальным законом распределения обеспечивают функции rand и randn .

 

>> A_zero=zeros(2,3)

A_zero =

     0     0     0

     0     0     0

 

>> A_one=ones(2,3)

A_one =

     1     1     1

     1     1     1

 

>> A_norm=randn(2,6)

A_norm =

   -0.4326    0.1253   -1.1465    1.1892    0.3273   -0.1867

   -1.6656    0.2877    1.1909   -0.0376    0.1746    0.7258

 

>> A_ravn=rand(3,4)

A_ravn =

    0.9218    0.4057    0.4103    0.3529

    0.7382    0.9355    0.8936    0.8132

    0.1763    0.9169    0.0579    0.0099

 

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

 

Использование в качестве элементов матрицы других матриц

>> A_zero_one=[A_zero,A_one;A_one,A_zero]

A_zero_one =

     0     0     0     1     1     1

     0     0     0     1     1     1

     1     1     1     0     0     0

     1     1     1     0     0     0

 

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

 

>> x=0:pi/6:pi

x =

         0    0.5236    1.0472    1.5708    2.0944    2.6180    3.1416

>> y=sin(x)

y =

         0    0.5000    0.8660    1.0000    0.8660    0.5000    0.0000

 

Категория: Основы MATLAB | Добавил: nazgull (24.05.2012)
Просмотров: 3840 | Теги: Скаляры matlab, вектора matlab, многомерные массивы matlab, массивы matlab, Базы данных | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ссылки