Spec-Zone.ru › Octave 5

3.3 Размеры объектов

Следующие функции позволяют определить размер переменной или выражения. Эти функции определены для всех объектов. Они возвращают -1, когда операция не имеет смысла. Например, тип данных структуры данных Octave не имеет строк или столбцов, поэтому функции rows и columns возвращают -1 для аргументов структуры.

ndims (a)

Возвращает количество измерений объекта a.

Для любого массива результат всегда будет больше или равен 2. Конечные одноэлементные измерения не учитываются, т. е. конечные измерения d больше 2, для которых size (a, d) = 1.

ndims (ones (4, 1, 2, 1))
    ⇒ 3

См. также: size.

columns (a)

Возвращает количество столбцов объекта a. Это эквивалентно size (a, 2).

См. также: rows, size, length, numel, isscalar, isvector, ismatrix.

rows (a)

Возвращает количество строк объекта a. Это эквивалентно size (a, 1).

См. также: columns, size, length, numel, isscalar, isvector, ismatrix.

numel (a)
numel (a, idx1, idx2, …)

Возвращает количество элементов в объекте a.

При необходимости, если указаны индексы idx1, idx2, …, возвращает количество элементов, которые получились бы в результате индексирования

a(idx1, idx2, …)

Обратите внимание, что индексы не обязательно должны быть скалярными числами. Например,

a = 1;
b = ones (2, 3);
numel (a, b)

вернёт 6, так как это количество способов индексирования с b. Или индекс может быть строкой ":", которая представляет оператор двоеточия. Например,

a = ones (5, 3);
numel (a, 2, ":")

вернет 3, так как вторая строка имеет три столбца.

Этот метод также вызывается, когда объект появляется как lvalue с индексированием cs-списка, т. е. object{…} или object(…).field.

См. также: size, length, ndims.

length (a)

Возвращает длину объекта a.

Длина равна 0 для пустых объектов, 1 для скаляров и количеству элементов для векторов. Для матриц или N-мерных объектов длина равна числу элементов вдоль наибольшего измерения (эквивалентно max (size (a))).

См. также: numel, size.

sz = size (a)
dim_sz = size (a, dim)
[rows, cols, …, dim_N_sz] = size (…)

Возвращает строку-вектор с размером (количеством элементов) каждого измерения для объекта a.

При указании второго аргумента dim возвращает размер соответствующего измерения.

С одним выходным аргументом, size возвращает строку-вектор. При вызове с несколькими выходными аргументами, size возвращает размер измерения N в N-ом аргументе. Число строк, измерение 1, возвращается в первом аргументе, количество столбцов, измерение 2, возвращается во втором аргументе и т. д. Если в a больше измерений, чем выходных аргументов, size возвращает общее число элементов в оставшихся измерениях в конечном выходном аргументе.

Пример 1: строка-вектор с одним выходным значением

size ([1, 2; 3, 4; 5, 6])
   ⇒ [ 3, 2 ]

Пример 2: количество элементов во втором измерении (столбцах)

size ([1, 2; 3, 4; 5, 6], 2)
    ⇒ 2

Пример 3: количество выходных аргументов == количество измерений

[nr, nc] = size ([1, 2; 3, 4; 5, 6])
    ⇒ nr = 3
    ⇒ nc = 2

Пример 4: количество выходных аргументов < количество измерений

[nr, remainder] = size (ones (2, 3, 4, 5))
    ⇒ nr = 2
    ⇒ remainder = 60

См. также: numel, ndims, length, rows, columns, size_equal, common_size.

isempty (a)

Возвращает true, если a является пустой матрицей (любое из её измерений равно нулю).

См. также: isnull, isa.

isnull (x)

Возвращает true, если x является специальной нулевой матрицей, строкой или строкой в одинарных кавычках.

Индексированная присваивание с таким нулевым значением справа должно удалять элементы массива. Эта функция используется вместо isempty при перегрузке метода индексированного присваивания (subsasgn) для определённых пользователем классов. isnull используется для различения этих двух случаев:

A(I) = []

и

X = []; A(I) = X

В первом присваивании правая часть равна [], что является специальным нулевым значением. Пока индекс I не пуст, этот код должен удалять элементы из A, а не выполнять присваивание.

Во втором присваивании правая часть пуста (потому что X является []), но она не нулевая. Этот код должен присвоить пустое значение элементам в A.

Пример из встроенного класса char Octave демонстрирует поведение интерпретатора, когда isnull используется правильно.

str = "Hello World";
nm = "Wally";
str(7:end) = nm                # indexed assignment
  ⇒ str = Hello Wally
str(7:end) = ""                # indexed deletion
  ⇒ str = Hello

См. также: isempty, isindex.

sizeof (val)

Возвращает размер val в байтах.

См. также: whos.

size_equal (a, b, …)

Возвращает true, если размеры всех аргументов совпадают.

Конечные одноэлементные измерения игнорируются. При вызове с одним аргументом или без аргументов size_equal возвращает true.

См. также: size, numel, ndims, common_size.

squeeze (x)

Удаляет одноэлементные измерения из x и возвращает результат.

Обратите внимание, что для совместимости с MATLAB, все объекты имеют минимум два измерения, а векторы-строки остаются без изменений.

См. также: reshape.

© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v5.2.0/Object-Sizes.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API