functionsclass

버전 1.0.0.0 (9.73 KB) 작성자: Mihai Moldovan
A class that exposes MATLAB subfunctions as public methods of the primary functions.
다운로드 수: 1.4K
업데이트 날짜: 2002/8/5

라이선스 없음

The initial MATLAB programming model assumed that each function is in a separate file. When the programs became more complex the 'subfunctions' were introduced. The idea was that subfunctions are helper functions that can't be accessed from outside the primary function file. This paradigm changed again with the GUIDE implementation. The callbacks in the *.fig file are passed to the primary function in the *.m file that distributes them to the subfunctions using a 'FEVAL switchyard'.

What's next?

My idea is to consider a more 'object oriented' programming model. Objects are supported by MATLAB but their practical use is shaded by the complexity of implementation (How many examples have you seen so far ?!).

When looking at function files like objects, the subfunctions are methods of the primary functions.
In this case subfunctions became generally available from outside their function files. Something like:

argout=somefunction.somesubfunction(argin1, argin2, ...);

I implemented this mechanism in a 'functionsclass' object. To use it SIMPLY type:

f=functionsclass;
argout=f.somefunction.somesubfunction(argin1, argin2, ...);
argout=f.somefunction(argin1, argin2, ...);

As you might expect, the first call to a function/subfunction by this mechanism is somewhat slower than a normal MATLAB call. However, the functionclass object implements a 'Cache' property to store the called function handles so subsequent calls to the same functions are much faster.

The implementation is done only with *.m files and is highly commented (see tutorial.m) . You will discover how to implement a class with a 'ByRef' property in MATLAB. I mean ... the recommended property change in MATLAB is 'ByVal':
f=set (f,'Cache',[]);

But in this example you can simply write
set (f,'Cache',[]);

If you feel that MATLAB may evolve in this way PLEASE LET ME KNOW. If not... consider this just an advanced tutorial on MATLAB objects, subfunctions and function handles.

인용 양식

Mihai Moldovan (2024). functionsclass (https://www.mathworks.com/matlabcentral/fileexchange/2069-functionsclass), MATLAB Central File Exchange. 검색됨 .

MATLAB 릴리스 호환 정보
개발 환경: R12.1
모든 릴리스와 호환
플랫폼 호환성
Windows macOS Linux
카테고리
Help CenterMATLAB Answers에서 Historical Contests에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
버전 게시됨 릴리스 정보
1.0.0.0