Проделайте аналогичные операции для остальных переменных str1, str2, st, n, m,. Сделайте выводы.
Итак, важно понять, что число, вектор-строка, вектор-столбец или матрица являются математическими объектами, которые представляются двумерными массивами.
N-мерные массивы данных
Приведем примеры массивов другой размерности.
Примеры. N-мерные массивы
Команда rand(k,l,n,m) позволяет создавать матрицу с произвольными числами (от 0 до 1) размерности k x l (k строк, l столбцов), n, m - добавляют единицы измерения, например
>> E1=rand(1,4) %создаем матрицу размерности 1x4
E1 = 0.7922 0.9595 0.6557 0.0357
>> ndims(E1) % увидим, что E1 - двумерный массив
ans =
>> E2=rand(size(st)) %создаем матрицу той же размерности, что и st, 3x1
E2 =
0.9340
0.6787
0.7577
>> ndims(E2) % убедимся: E2 - двумерный массив
ans = 2
Заметим следующее:
>> n1=size(E1)
n1 = 1 4
>> size(n1) % это тоже, что и size(size(E1))
ans =
1 2
>> length(n1)
ans = 2
>> length(size(E1))
ans =
>> ndims(E1)
ans =
length() – возвращает наибольшее из чисел размерности-size массива
То есть
ndims(E1)=length(size(E1))
Проверьте этот факт для остальных переменных рабочего пространства. Посмотрим, как это работает для массивов размерности 3 и 4.
>> E3=rand(3,2,2) % создадим трехмерный массив
E3(:,:,1) =
0.0046 0.8687
0.7749 0.0844
0.8173 0.3998
E3(:,:,2) =
0.2599 0.9106
0.8001 0.1818
0.4314 0.2638
Образно говоря, мы получили «многоэтажный дом». Теперь, чтобы обратиться к элементам трехмерного массива, нужно задать номера строки, столбца и «этажа». В данном массиве два этажа, «в каждом этаже» по три строки и по два столбца.
>> ndims(E3)
ans = 3
E3(:,:,1) – выводит первую матрицу 3х2, E3(:,:,2) –выводит вторую матрицу 3х2
Роль символа двоеточия «:» интуитивно понятен, позже будет объяснение и плотная работа с этим символом.
Мы получили «улицу» из «одинаково этажных домов». Теперь, чтобы обратиться к элементам четырехмерного массива, нужно задать номера строки, столбца, «этажа» и «номер дома». В данном массиве два дома, по три этажа в каждом, на каждом «этаже» одна строка и три столбца.
E4(:,:,3,1) - выводит третий массив первого уровня, E4(:,:,2,2) – выводит второй массив второго уровня.
>> ndims(E4)
ans = 4
И мы снова видим: ndims(A)=length(size(A))
>> n3=size(E3)
n3 = 3 2 2
>> length(n3)
ans =
>> n4=size(E4)
n4 = 3 2 2 2
>> length(n4)
ans = 4
Итак, все данные в MATLAB представляются в виде массивов. Очень важно правильно понять, как устроены массивы. Без этого невозможна эффективная работа в MATLAB, в частности построение графиков, решение задач линейной алгебры, обработки данных, статистики и многих других.
Массив - упорядоченная, пронумерованная совокупность однородных данных. У массива должно быть имя. Массивы различаются по числу размерностей или измерений. Доступ к элементам осуществляется при помощи индекса.
Еще раз: число, вектор-строка, вектор-столбец или матрица являются математическими объектами, массивы - способы хранения этих объектов в компьютере. Всюду дальше чаще будут использоваться слова «вектор» и «матрица», так как для нас больший интерес представляет сам объект, чем способ его хранения. Слово «массив» будет использоваться и для вектора, и для матрицы, когда их различие будет несущественным.