linkprop does not work with multidimensional array of objects

7 次查看(过去 30 天)
Bug report: If given an array (not a vector) of objects, then linkprop doesn't link properties for all the objects it is given, but rather a subset of them:
fig=figure;
nrow=3;
ncol=2;
tl=tiledlayout(nrow,ncol);%,'tileindexing','columnmajor');
ax=gobjects(nrow,ncol);
for cnt1=1:nrow*ncol
ax(cnt1)=nexttile;
plot(1:2,3:4)
end
ln=linkprop(ax,{'xlim','ylim'});
ax(1).XLim=[1.5,2.5];
disp('ln.Targets(:).XLim')
ln.Targets(:).XLim
ln.Targets(:).XLim
ans = 1x2
1.5000 2.5000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1x2
1.5000 2.5000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1x2
1.5000 2.5000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1x2
1 2
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1x2
1 2
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1x2
1 2
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
disp('ax(:).XLim')
ax(:).XLim
ax(:).XLim
ans = 1x2
1.5000 2.5000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1x2
1.5000 2.5000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1x2
1 2
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1x2
1.5000 2.5000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1x2
1 2
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
ans = 1x2
1 2
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
Which objects do get linked depends on whether 'rowmajor' or 'colummajor' tile indexing are used. It sort-of operates on just the first row/column of objects given in the array, for instance try changing nrow and ncol to be equal to each other. I have the problem in 2023a, seems it's also present in the latest release (2024a) based on the results above.

采纳的回答

T A
T A 2024-6-30
I submitted a bug report. Mathworks has verified this is a bug. Unclear if it'll get addressed, so I asked that they at least update the documentation to state the axes object array must be a vector.

更多回答(1 个)

Avni Agrawal
Avni Agrawal 2024-6-27
编辑:Avni Agrawal 2024-6-27
Hi @T A,
I seems like there is some sort of a timing issue. Even i'm facing the similar issue. The messages to link the axes are arriving at the client before the messages to register the axes control for each axes, so it's not able to link whichever axes is created last, as its control is not yet created when the message to link it is received.
I would suggest to contact someone from the Mathworks Technical Support: https://www.mathworks.com/support/contact_us.html
I hope this helps.

类别

Help CenterFile Exchange 中查找有关 Graphics Object Programming 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by