Access to memory store via global in matlab function
古いコメントを表示
Don't know how I managed this

Note how the second error report one simulation time step later exactly contradicts the first one from t=0.
I'm just using a matlab function to access a Simulink data store.
Here are the settings for it

Here is the code that raises the errors
% t is input from a clock block
% size(Screen)=[5 8]
function DOIT(t, Screen)
global CurrentSEPScreen;
if t==0 % Initialise - Shouldn't be necessary, but errors are raised
% Can't get rid of that error, trying different initialisation approaches.
Y=[32 32 32 32 32 32 32 32];
% CurrentSEPScreen(1,:)=Y;
% CurrentSEPScreen(2,:)=Y;
% CurrentSEPScreen(3,:)=Y;
% CurrentSEPScreen(4,:)=Y;
% CurrentSEPScreen(5,:)=Y;
CurrentSEPScreen=[Y;Y;Y;Y;Y];
else
for RowN=1:5
if any(Screen(RowN,:)~=CurrentSEPScreen(RowN,:))
CurrentSEPScreen(RowN,:)=Screen(RowN,:);
end
end
end
end
回答 (1 件)
Fangjun Jiang
2018 年 10 月 24 日
0 投票
I think the warning message is clear. If you want to ignore this, go to Simulation, Model Configuration Parameters, Diagnostics, Data Validity, Data Store Memory block, and change the setting.
6 件のコメント
John Carter
2018 年 10 月 24 日
編集済み: John Carter
2018 年 10 月 24 日
Fangjun Jiang
2018 年 10 月 24 日
They are not contradicting. These write-after-write and read-before-write could all happen during the same simulation step. You can change the setting to ignore them.
John Carter
2018 年 10 月 25 日
編集済み: John Carter
2018 年 10 月 25 日
Fangjun Jiang
2018 年 10 月 25 日
The setting regarding how to report these data store memory access abnormally, either "use local settings", "disable all", "enable all as warnings" or "enable all as errors".
John Carter
2018 年 11 月 1 日
編集済み: John Carter
2018 年 11 月 1 日
John Carter
2018 年 11 月 1 日
編集済み: John Carter
2018 年 11 月 1 日
カテゴリ
ヘルプ センター および File Exchange で Sources についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
