How can I programmatically add a Stateflow.Data ?

I used a Mathworks tutorial (in the link under) to copy a stateflow, but data (in the sybols Pane) aren't flollowing.
How I can Copy or add Stateflow.Data ?
Thanks

回答 (1 件)

Gojo
Gojo 2024 年 10 月 18 日
編集済み: Gojo 2024 年 10 月 18 日

0 投票

As far as I understand, copying graphical objects also copies the Stateflow.Data objects contained by graphical objects. When you copy multiple graphical objects, the value of their Subviewer property must be the same. Also note that the array must contain only graphical objects or only nongraphical objects.
If the above conditions are satisfied, the Stateflow.Data should get copied.
For more information please check the documentation of objArray (the objects to copy) using the copy function: https://www.mathworks.com/help/stateflow/api/stateflow.clipboard.copy.html#mw_af87b90f-8fbe-430e-a5f0-03b56fe3978e
If you have further queries, please share the example you are using in order to reproduce the issue.
Happy coding!

3 件のコメント

Houellebecq Vincent
Houellebecq Vincent 2024 年 10 月 21 日
Ok I understood my problem, I was not looking for the Stateflow.Datas in the right place of the model
Thanks for yours answer
Gojo
Gojo 2024 年 10 月 21 日
Happy to know that the issue has been resolved!
Houellebecq Vincent
Houellebecq Vincent 2024 年 10 月 21 日
sorry wrong handling I made a mistake
So I have 2 files .slx with chart:
file_1.slx :
file_2.slx :
My code :
open_system('File_1.slx')
open_system('File_2.slx')
ch = find(sfroot,'-isa','Stateflow.Chart');
sA = find(ch,'-isa','Stateflow.State','Name','Etat2Copie');
sB = find(ch,'-isa','Stateflow.State','Name','Etat_parent');
sB.IsSubchart = true;
% sB.IsGrouped = true;
objArrayS = find(sA,'-isa','Stateflow.State');
objArrayS = setdiff(objArrayS,sA);
objArrayT = find(sA,'-isa','Stateflow.Transition');
objArray = [objArrayS; objArrayT];
cb = sfclipboard;
copy(cb,objArray);
pasteTo(cb,sB);
sB.IsSubchart = false;
sB.IsGrouped = false;
Résults:
The problème is :
Symbols = find(sfroot,'-isa','Stateflow.Data')
Symbols =
0×1 empty handle
I expected the following result :
ans =
Path: 'ModeleTest/Chart1'
Id: 30
Machine: [1×1 Stateflow.Machine]
SSIdNumber: 15
Name: 'x'
Description: ''
SaveToWorkspace: 0
DataType: 'Inherit: Same as Simulink'
Props: [1×1 Stateflow.DataProps]
ParsedInfo: [1×1 Stateflow.DataParsedInfo]
CompiledSize: ''
CompiledType: 'unknown'
Tag: []
Document: ''
Port: 1
Scope: 'Output'
TestPoint: 0
OutputState: []
Debug: [1×1 Stateflow.DataDebug]
InitializeMethod: 'Expression'
UpdateMethod: 'Discrete'
LoggingInfo: [1×1 Stateflow.SigLoggingInfo]
Tunable: 1

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeMAB Modeling Guidelines についてさらに検索

製品

リリース

R2020b

質問済み:

2024 年 10 月 18 日

コメント済み:

2024 年 10 月 21 日

Community Treasure Hunt

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

Start Hunting!

Translated by