【发布时间】:2015-05-27 17:02:57
【问题描述】:
我在 MATLAB 中有一个带有一些线条的图形,它们会自动分配给各种颜色,我想为其他图形对象设置相同的颜色序列。
例如:
x = 0:10; y = 0:0.5:5;
h = plot(x,y+1, x,y+2), hold on
g = plot(x,y-1, x,y-2)
% want to get the bottom two lines to match respectively the colors of the top two lines
% suggested code:
g.Color = h.Color; % doesn't work
我知道我可以使用以下代码同时设置多个线条对象的颜色,但我只是设法弄清楚如何使用它将所有线条对象设置为单一颜色。 (相反,我希望 'g' 中的每个线对象采用不同的颜色值,即来自 'h' 的相应索引线对象的颜色)。
set(g,'Color', [1 0 0]);
我想避免循环遍历并单独设置每一行,比如
g(1).Color = h(1).Color; % ...
我尝试了各种包装或投射 g 和 g.Color 和 h.Color 的输出的方法,例如 [g.Color]、g(:).Color、g{:}.Color 等,但我还没有找到工作。我也尝试使用 cellfun(@(x,y) x.Color = y.Color, g, h) 和类似的代码,但没有成功。实际上,我对这些对象的数据结构并不完全清楚——在我看来 g.Color 列出了像元胞数组那样的值,但它实际上不是元胞数组..
同样,目标是在一行代码中将图形句柄中的多个线对象的颜色设置为不同的颜色,特别是另一个图形句柄对象(具有相同数量的线对象)的颜色)。
感谢您的建议!
【问题讨论】:
标签: matlab graphics plot matlab-figure handle