размер

Класс: matlab.io.
Пакет: matlab.io

ArrayDimensions

Синтаксис

allDims = size(matObj,variable)
[dim1,...,dimN] = size(matObj,variable)
selectedDim = size(matObj,variable,dim)

Описание

allDims = size(matObj,variable) возвращает размер каждой размерности заданной переменной в файле, соответствующем matObj. Выводом allDims является 1-by-m вектор, где m = ndims(variable).

[dim1,...,dimN] = size(matObj,variable) возвращает размеры каждой размерности в отдельных выходных переменных dim1,...,dimN.

selectedDim = size(matObj,variable,dim) возвращает размер заданного измерения.

Входные параметры

matObj

Объект создается функцией matfile.

variable

Строка заключила в одинарные кавычки, который задает имя переменной в MAT-файле, соответствующем matObj.

dim

Ненулевое положительное скалярное целое число, которое задает размерность переменной.

Выходные аргументы

allDims

1-by-m вектор размеров размерностей заданной переменной, где m = ndims(variable).

dim1,...,dimN

Скалярные числовые значения, где dimK содержит размер K th размерность variable:

  • Если N <ndims(variable), то dimN, равняется продукту размеров размерностей N через ndims(variable).

  • Если N> ndims(variable), метод size возвращает единицы в выходных переменных, соответствующих размерностям ndims(variable)+1 через N.

selectedDim

Скалярное числовое значение, которое содержит размер выбранного измерения для заданной переменной.

Примеры

Найдите размер матричного topo в topography.mat, не загружая данных:

matObj = matfile('topography.mat');
[nrows,ncols] = size(matObj,'topo');

Определите размерности переменной и обработайте одну часть переменной за один раз. В этом случае вычислите и сохраните среднее значение каждого столбца переменной stocks в файле в качестве примера stocks.mat:

filename = 'stocks.mat';
matObj = matfile(filename);
[nrows, ncols] = size(matObj,'stocks');

avgs = zeros(1,ncols);
for idx = 1:ncols
    avgs(idx) = mean(matObj.stocks(:,idx));
end

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

matObj = matfile('temp.mat','Writable',true);
matObj.X = rand(2,3,4);

d = size(matObj,'X')
d2 = size(matObj,'X',2)
[m,n] = size(matObj,'X')
[m1,m2,m3,m4] = size(matObj,'X')

Этот код возвращается

d =
     2     3     4

d2 =
     3

m =
     2
n =
    12

m1 =
     2
m2 =
     3
m3 =
     4
m4 =
     1

Советы

  • Не вызывайте size с синтаксисом size(matObj.variable). Этот синтаксис загружает целое содержимое переменной в память. Для очень больших переменных эта операция загрузки приводит к Out of ошибки Memory.

Смотрите также

|