|
|
|||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Вход | |||||||||||||||||||||||||||||||||
|
Раздел "MATLAB\MATLAB"
В.Г.Потемкин "Введение в Matlab" (v 5.3) В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель 5.4. Команды и функции обработки многомерных массивов
Синтаксис: C = cat(dim, A, B) Описание: Функция C = cat(dim, A, B) объединяет массивы A и B вдоль размерности dim. Функция C = cat(dim, A1, A2, A3, A4 ?) объединяет множество исходных массивов Ai вдоль размерности dim. При этом cat(1, A, B) равносильно массиву [A; B], объдиняемому вдоль строк; cat(2, A, B) равносильно массиву [A B], объдиняемому вдоль столбцов. Функции вида cat(dim, A{:}) и cat(dim, A.<имя_поля>) задают объединение массива ячеек или массива записей, содержащего числовые матрицы, в некоторый многомерный массив. Пример.
Выполним их объединение вдоль разных размерностей:
Последовательность операторов M = magic(3); создает следующий многомерный массив размера 3x3x1x2: С(:, :, 1, 1) =
С(:, :, 1, 2) =
Объединяя массив M и массив P, дополненный единичным столбцом, в массив ячеек S, S = {M [P ones(size(P, 1), 1)]}; можно сформировать 2-мерный массив sizes, элементами которого являются размеры входных массивов sizes =
Сопутствующие функции: NUM2CELL. Переопределение метода: funfun\inline\cat.m
Синтаксис: n = ndims(A) Описание: Функция n = ndims(A) возвращает количество размерностей многомерного массива A, которое всегда больше или равно 2. Оконечные единичные размерности dim массива А, то есть такие размерности, для которых выполняется условие size(A, dim) = 1, во внимание не принимаются. Алгоритм: ndims(X) = length(size(X)) Сопутствующие функции: SIZE.
Синтаксис: [X1, X2, X3, ....] = ndgrid(x1, x2, x3,.....) Описание: Функция [X1, X2, X3,.....] = ndgrid(x1, x2, x3,.....) преобразует области, заданные векторами x1, x2, x3,.... в массивы X1, X2, X3, ...., которые можно использовать в качестве сетки для вычисления функций нескольких переменных и многомерной интерполяции. При этом i-ая размерность выходного массива Xi повторяет элементы вектора xi. Функция [X1, X2, ...] = ndgrid(x) равносильна функции [X1, X2, ...] = ndgrid(x, x, ...). Пример. [x1, x2, x3] = ndgrid(-2:.2:2, -2:.25:2, -2:.16:2);
Рис. 5.17 Замечание: Функция ndgrid аналогична функции meshgrid, за исключением того, что первые два аргумента перставлены местами, то есть функция [X1, X2, X3] = ndgrid(x1, x2, x3) дает тот же результат, что и функция [X2, X1, X3] = meshgrid(x2, x1, x3). В силу этого обстоятельства функция ndgrid лучше подходит для решения многомерных задач, в то время как функция meshgrid - для решения пространственных задач в 2-мерном и 3-мерном пространствах. Сопутствующие функции: MESHGRID, INTERPN.
Синтаксис: B = permute(A, <вектор перестановок>) Описание: Функция B = permute(A, <вектор перестановок>) осуществляет перестановку размерностей многомерного массива A в соответствии с порядком, определенным вектором перестановок. Значения элементов массива остаются неизменными, но порядок размещения последних определяется вектором перестановок; в свою очередь, элементы вектора перестановок - это числа от 1 до N, переставленные соответствующим образом. Функция A = ipermute(B, <вектор перестановок>) осуществляет обратную перестановку размерностей многомерного массива A в соответствии с порядком, определенным вектором перестановок. Замечание: Функции permute и ipermute обобщают операцию траспонирования (.') на случай многомерных массивов. Пример A = rand(1,2,3,4); Массив с переставленными размерностями имеет размер 3x2x1x4. C = ipermute(B, [3 2 1 4]); Таким образом, массивы С и A идентичны. Сопутствующие функции: нет.
Синтаксис: B = shiftdim(X, n) Описание: Функция B = shiftdim(X, n) сдвигает n размерностей многомерного массива X; если n положительное число, выполняется сдвиг на n размерностей влево, а n первых размерностей подставляются в конец (круговая перестановка); если n отрицательное число, выполняется сдвиг на n размерностей вправо, а n первых размерностей дополняются единичными. Функция [B, n] = shiftdim(X) возвращает с тем же количеством элементов, что и X, но с удаленными ведущими единичными размерностями; количество удаленных размерностей фиксируется переменной n. Функция shiftdim удобна тем, что подобно функциям sum и diff, работает с первой неединичной размерностью. Замечание: Если X - скаляр, то функции shiftdim(X) не выполняется. Пример A = rand(1, 1, 3, 1, 2);
B(:, :, 2) =
n = 2 Массив B имеет размер 3x1x2 и n = 2. C = shiftdim(B, -n); Таким образом, массивы С и A идентичны. D = shiftdim(A, 3); Сопутствующие функции: RESHAPE, SQUEEZE.
Синтаксис: B = squeeze(A) Описание: Функция B = squeeze(A) возвращает массив B с теми же элементами, что и A, но в котором удалены размерности, равные 1. Пример. A = rand(2, 1, 3)
A(:, :, 2) =
A(:, :, 3) =
Применение функции squeeze превращает его в 2-мерный размера 2x3: squeeze(A)
Сопутствующие функции: RESHAPE, SHIFTDIM. В оглавление книги \ К следующему разделу \ К предыдущему разделу \ Предметный указатель
|
|
Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
|
||
| На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro | ||
| E-mail: | ||
| Информация на сайте была обновлена 11.05.2004 |
Copyright 2001-2004 SoftLine Co Наши баннеры |
|