私は最初のMATLABOOアプリケーションを作成していますが、構成、集計、および関係全般の実装について混乱しています。
私の質問は、MATLABで1対多の集計または関連付けを実装する方法です。どこでいくつかの例を取ることができますか?
さらに、ArgoUmlを使用してアプリケーションを設計していますが、MATLABで自動コード生成するためのプラグインはありますか?
前もって感謝します
私は最初のMATLABOOアプリケーションを作成していますが、構成、集計、および関係全般の実装について混乱しています。
私の質問は、MATLABで1対多の集計または関連付けを実装する方法です。どこでいくつかの例を取ることができますか?
さらに、ArgoUmlを使用してアプリケーションを設計していますが、MATLABで自動コード生成するためのプラグインはありますか?
前もって感謝します
クラス関連付けの簡単な例を次に示します。このシナリオは、多くの学生が登録できるコースで構成されています。
classdef Student < handle
properties
name
end
methods
function obj = Student(name)
if nargin > 0
obj.name = name;
end
end
function delete(obj)
fprintf('-- Student Destructor: %s\n',obj.name);
end
end
end
classdef Course < handle
properties
name %# course name
std %# cell array of students
end
properties(Access = private)
lastIdx = 1;
end
methods
function obj = Course(name, capacity)
obj.name = name;
obj.std = cell(capacity,1);
end
function addStudent(obj, std)
if obj.lastIdx > numel(obj.std)
fprintf(2, 'Sorry, class is full\n');
return
end
obj.std{obj.lastIdx} = std;
obj.lastIdx = obj.lastIdx + 1;
end
function printClassRoster(obj)
fprintf('Course Name = %s\n', obj.name);
fprintf('Enrolled = %d, Capacity = %d\n', ...
obj.lastIdx-1, length(obj.std));
for i=1:obj.lastIdx-1
fprintf('ID = %d, Name = %s\n', i, obj.std{i}.name);
end
end
end
end
上記のクラスをテストするコードは次のとおりです。
c = Course('CS101', 3);
for i=1:4
name = sprintf('amro%d',i);
fprintf('Adding student: %s\n', name)
c.addStudent( Student(name) )
end
fprintf('\nClass Roster:\n=============\n')
c.printClassRoster()
fprintf('\nCleaning up:\n')
clear c
出力:
Adding student: amro1
Adding student: amro2
Adding student: amro3
Adding student: amro4
Sorry, class is full
-- Student Destructor: amro4
Class Roster:
=============
Course Name = CS101
Enrolled = 3, Capacity = 3
ID = 1, Name = amro1
ID = 2, Name = amro2
ID = 3, Name = amro3
Cleaning up:
-- Student Destructor: amro1
-- Student Destructor: amro2
-- Student Destructor: amro3
Object-Oriented Programming in MATLABを見て、ドキュメンテーションでObject-Oriented Programmingを参照してください。
Value or Handle Class — which to use を よく見ることをお勧めします。簡単に言うと、ハンドル クラスを使用すると参照を渡すことができますが、値クラスは常に元のオブジェクトのコピーです。
MATLAB は主にエンジニアによって使用され、ソフトウェア開発者では使用されないため、ArgoUml 用のプラグインを見つけたら驚くでしょう。