Класс: matlab.io. Matfile
Пакет: matlab.io
ArrayDimensions
allDims = размер (matObj, переменная)
[dim1..., dimN] = размер (matObj, переменная)
selectedDim = размер (matObj, переменная, 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)
|
Объект создается функцией |
|
Строка заключила в одинарные кавычки, который задает имя переменной в MAT-файле, соответствующем |
|
Ненулевое положительное скалярное целое число, которое задает размерность переменной. |
|
|
|
Скалярные числовые значения, где
|
|
Скалярное числовое значение, которое содержит размер выбранного измерения для заданной переменной. |
Найдите размер матричного 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
Создайте трехмерный массив и вызовите метод 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
.