Multi-level indexing
1 次查看(过去 30 天)
显示 更早的评论
Given: screen(1).position = [1 2; 3 4]; screen(1).size = [5 6; 7 8]; screen(2).position = [11 12; 13 14]; screen(2).size = [15 16; 17 18]; I can execute: screen(1).position(:,2) and screen(1:2).position but not screen(1:2).position(:,2), for example to make a simultaneous assignment to the 2nd columns of the position matrices i.e. intuitively I would like to say: screen(1:2).position(:,2) = [19 20; 21 22]; What is the easiest way to accomplish the assignment?
0 个评论
采纳的回答
Oleg Komarov
2011-9-7
This is alimitation of structures:
new = [19 20; 21 22];
for n = 1:numel(screen)
screen(n).position(:,2) = new(:,n);
end
If your fields concatenable, then I would suggest to store them as:
screen.position = cat(3,[1 2; 3 4], [11 12; 13 14]);
screen.position(:,2,:) = [19 20; 21 22];
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Object Properties 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!