pasteTo
クリップボード内のオブジェクトを指定したコンテナー オブジェクトに貼り付け
説明
例
ステートをグループ化し、その内容をチャートにコピーします。ステート、ボックス、またはグラフィカル関数をグループ化すると、グループ化したそのオブジェクトに含まれるすべてのオブジェクトと、これらのオブジェクト間のすべての関係をコピーして貼り付けることができます。これは、プログラムによってオブジェクトのコピーと貼り付けを行う最も簡単な方法です。ステートがグループ化されていない場合、ステートをコピーしてもその内容はコピーされません。

モデルを開き、チャートの Stateflow.Chart オブジェクトにアクセスします。
open_system("sfHierarchyAPIExample") ch = find(sfroot,"-isa","Stateflow.Chart");
A という名前の Stateflow.State オブジェクトを検索します。
sA = find(ch,"-isa","Stateflow.State",Name="A");
sA の IsGrouped プロパティを true に設定し、ステート A とその内容をグループ化します。後で戻せるように、このプロパティの前の設定を保存します。
prevGrouping = sA.IsGrouped; sA.IsGrouped = true;
ステートの名前を Copy_of_A に変更します。後で戻せるように、前の名前を保存します。
prevName = sA.Name;
newName = "Copy_of_"+prevName;
sA.Name = newName;クリップボード オブジェクトにアクセスします。
cb = sfclipboard;
グループ化されたステートをクリップボードにコピーします。
copy(cb,sA);
ステートのプロパティを元の設定に戻します。
sA.IsGrouped = prevGrouping; sA.Name = prevName;
クリップボードから、オブジェクトのコピーをチャートに貼り付けます。
pasteTo(cb,ch);
新しいステートのプロパティを調整します。
sNew = find(ch,"-isa","Stateflow.State",Name=newName); sNew.Position = sA.Position + [400 0 0 0]; sNew.IsGrouped = prevGrouping;

ステート A1 とステート A2 を、それらの間の遷移とともにチャートの新しいステートにコピーします。オブジェクト間の遷移接続および含有関係を保持するには、接続されているすべてのオブジェクトを一度にコピーします。

モデルを開き、チャートの Stateflow.Chart オブジェクトにアクセスします。
open_system("sfHierarchyAPIExample") ch = find(sfroot,"-isa","Stateflow.Chart");
A という名前の Stateflow.State オブジェクトを検索します。
sA = find(ch,"-isa","Stateflow.State",Name="A");
B という新しいステートを追加します。B 内で他のオブジェクトを貼り付けられるようにするために、この新しいステートをサブチャートに変換します。
sB = Stateflow.State(ch);
sB.Name = "B";
sB.Position = sA.Position + [400 0 0 0];
sB.IsSubchart = true;ステート A 内のステートと遷移を含む objArray という配列を作成します。関数setdiffを使用して、コピーするオブジェクトの配列からステート A を削除します。
objArrayS = find(sA,"-isa","Stateflow.State"); objArrayS = setdiff(objArrayS,sA); objArrayT = find(sA,"-isa","Stateflow.Transition"); objArray = [objArrayS objArrayT];
クリップボード オブジェクトにアクセスします。
cb = sfclipboard;
objArray のオブジェクトをコピーし、サブチャート B に貼り付けます。
copy(cb,objArray); pasteTo(cb,sB);
B をステートに戻します。
sB.IsSubchart = false;
Assertion failed: Deviant 'root deviant' not opened for transactions. Attempt to modify object of type 'StateflowDI.Transition' [id = -1 ] at kernel/deviant/Deviant.cpp:70: Assertion failed: Deviant 'root deviant' not opened for transactions. Attempt to modify object of type 'StateflowDI.Transition' [id = -1 ] at kernel/deviant/Deviant.cpp:70: Assertion failed: Deviant 'root deviant' not opened for transactions. Attempt to modify object of type 'StateflowDI.State' [id = -1 ] at kernel/deviant/Deviant.cpp:70: Assertion failed: Deviant 'root deviant' not opened for transactions. Attempt to modify object of type 'StateflowDI.State' [id = -1 ] at kernel/deviant/Deviant.cpp:70:
sB.IsGrouped = false;
B のステートと遷移を再配置します。
newStates = find(sB,"-isa","Stateflow.State"); newStates = setdiff(newStates,sB); newTransitions = find(sB,"-isa","Stateflow.Transition"); newOClocks = get(newTransitions,{"SourceOClock","DestinationOClock"}); for i = 1:numel(newStates) newStates(i).Position = newStates(i).Position + [25 35 0 0]; end set(newTransitions,{"SourceOClock","DestinationOClock"},newOClocks);

入力引数
クリップボード。Stateflow.Clipboard オブジェクトとして指定します。
コピーしたオブジェクトの親。次のいずれかのタイプの Stateflow® API オブジェクトとして指定します。
クリップボード内のオブジェクトがすべてグラフィカル (ステート、ボックス、関数、注釈、遷移、またはジャンクション) である場合、このオブジェクトはチャートまたはサブチャートでなければなりません。
ヒント
グラフィカル オブジェクトを貼り付ける場合、新しい親はチャートまたはサブチャートでなければなりません。ステート、ボックス、またはグラフィカル関数をサブチャートに変換するには、その IsSubchart プロパティを true に設定します。貼り付け後、IsSubchart プロパティと IsGrouped プロパティを false に設定することで、親を元に戻すことができます。
バージョン履歴
R2006a より前に導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)