Класс: 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
)
|
Объект создается функцией |
|
Строка заключила в одинарные кавычки, который задает имя переменной в 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
Создайте 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
.