让我们来看看,MATLAB 做了什么并复制思路:你可以使用Comma-Separated Lists as Function Call Arguments。实际上,有一个示例准确地描述了您想要实现的目标。然而,要让这个工作如你所愿,你还必须正确地“拆卸”LineSpec。请看下面的代码sn -p 得到你给出的例子的解决方案。
x = linspace(0, 2*pi, 50);
% styles = {['color',[.5 .2 .8],'--', 'linewidth', 1.25], ['or', markersize, 4], ['-sb', markersize, 2]}
styles = {
{'Color', [.5 .2 .8], 'LineStyle', '--', 'LineWidth', 1.25}, ...
{'Color', 'r', 'Marker', 'o', 'MarkerSize', 4}, ...
{'Color', 'b', 'LineStyle', '-', 'Marker', 's', 'MarkerSize', 2} ...
};
figure(1);
hold on;
for ii = 1:numel(styles)
plot(x, sin(x + ii * pi/4), styles{ii}{:});
end
hold off;
legend();
而且,这是一个示例性输出: