Overloading SIZE for Array-like User-Defined Objects

バージョン 1.2.0.0 (2.09 KB) 作成者: Matt J
A tool for OOP overloading of the size() method, imitating I/O conventions of MATLAB's native SIZE.
ダウンロード: 358
更新 2010/12/14

ライセンスの表示

parseSize - a function to aid OOP overloading of the size() method in user-defined classes. If the user provides the vector of dimensions of a hypothetical array object, parseSize will take care of the main input/output argument processing in a way that imitates the conventions of MATLAB's usual SIZE function.

EXAMPLE: consider the following class and notice how parseSize is used to implement the SIZE method in a single line,

classdef myClass
properties
dimension
end % properties

methods
function varargout=size(obj,varargin)
varargout=parseSize(obj.dimension,nargout,varargin{:});
end
end
end


In the next several examples, we see that all of the same calling syntaxes as for the usual MATLAB size() function are now enabled for this class:

>> obj=myClass; obj.dimension=[3,5,4,1];

>> [m,n,p,q,r,s]=size(obj); [m,n,p,q,r,s]

ans =

3 5 4 1 1 1

>> [m,n]=size(obj); [m,n]

ans =

3 20

>> s=size(obj)

s =

3 5 4


>> s2=size(obj,2)

s2 =

5


SYNTAX:

argsout=parseSize(dimensions,numargsout,dim)

in:

dimensions: A vector specifying the dimensions of a hypothetical array-like
object. Trailing ones are permitted.

numargsout: The number of requested outputs in a call to the class'
size method, e.g., for [m,n,p]=size(obj) a value of
numargsout=3 should be passed to parseSize.

dim: if the calling syntax to the class's size method is size(obj,i),
one would pass dim=i to parseSize.

out:

argsout: a cell array to be passed as the varargout of the size method.

引用

Matt J (2026). Overloading SIZE for Array-like User-Defined Objects (https://jp.mathworks.com/matlabcentral/fileexchange/29691-overloading-size-for-array-like-user-defined-objects), MATLAB Central File Exchange. 取得日: .

MATLAB リリースの互換性
作成: R2009b
すべてのリリースと互換性あり
プラットフォームの互換性
Windows macOS Linux
カテゴリ
Help Center および MATLAB AnswersArgument Definitions についてさらに検索
タグ タグを追加
バージョン 公開済み リリース ノート
1.2.0.0

Small bug fix. The case where the array dimension=[1,1,1,...1] was not correctly handled.

1.1.0.0

Minor edit to the Description page. No new code.

1.0.0.0