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!
