This example shows how to write code to initialize and set up a System object™.
In this example, you allocate file resources by opening the file so the System object can write to that file. You do these initialization tasks one time during setup, rather than every time you call the step method.
In this example, you define the public
and specify the value of that property as the nontunable string,
Users cannot change nontunable properties after
setup method has been called. Refer to the Methods
Timing section for more information.
properties (Nontunable) Filename = 'default.bin' end
Users cannot access private properties
directly, but only through methods of the System object. In this
example, you define the
pFileID property as a
private property. You also define this property as hidden to
indicate it is an internal property that never displays to the user.
properties (Hidden,Access = private) pFileID; end
You use the
setupImpl method to perform setup
and initialization tasks. You should include code in the
that you want to execute one time only. The
is called once during the first call to the
In this example, you allocate file resources by opening the file for
writing binary data.
methods function setupImpl(obj) obj.pFileID = fopen(obj.Filename,'wb'); if obj.pFileID < 0 error('Opening the file failed'); end end end
Although not part of setup, you should close files when your
code is done using them. You use the
to release resources.
classdef MyFile < matlab.System % MyFile write numbers to a file % These properties are nontunable. They cannot be changed % after the setup or step method has been called. properties (Nontunable) Filename = 'default.bin' % the name of the file to create end % These properties are private. Customers can only access % these properties through methods on this object properties (Hidden,Access = private) pFileID; % The identifier of the file to open end methods (Access = protected) % In setup allocate any resources, which in this case % means opening the file. function setupImpl(obj) obj.pFileID = fopen(obj.Filename,'wb'); if obj.pFileID < 0 error('Opening the file failed'); end end % This System object writes the input to the file. function stepImpl(obj,data) fwrite(obj.pFileID,data); end % Use release to close the file to prevent the % file handle from being left open. function releaseImpl(obj) fclose(obj.pFileID); end end end