Spec-Zone.ru › Octave 9

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

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

: n = ndims (A)

Возвращает число измерений A.

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

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

См. также: size.

: nc = columns (A)

Возвращает число столбцов A.

Это эквивалентно size (A, 2).

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

: nr = rows (A)

Возвращает число строк A.

Это эквивалентно size (A, 1).

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

: n = numel (A)
: n = 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 при индексировании списком с запятыми, то есть object{…} или object(…).field.

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

: n = length (A)

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

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

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

: sz = size (A)
: dim_sz = size (A, dim)
: dim_sz = size (A, d1, d2, …)
: [rows, cols, …, dim_N_sz] = size (…)

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

Если указан второй аргумент, dim, возвращает размер соответствующего измерения. Если dim — вектор, возвращает размеры всех соответствующих измерений. Несколько измерений также можно указать в виде отдельных аргументов.

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

Пример 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

Пример 5: число элементов в измерении больше числа фактических измерений

sz4 = size (ones (2, 3), 4)
    ⇒ sz4 = 1

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

: tf = isempty (A)

Возвращает true, если A — пустой объект (одно из его измерений равно нулю).

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

: tf = 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.

: sz = sizeof (val)

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

См. также: whos.

: TF = size_equal (A, B)
: TF = size_equal (A, B, …)

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

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

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

: B = squeeze (A)

Удаляет из A измерения, равные единице, и возвращает результат.

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

См. также: reshape.

© 1996–2026 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/v9.4.0/Object-Sizes.html

Spec-Zone.ru

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