Давайте посмотрим, что делает MATLAB и скопируем идеи: вы можете использовать Разделенные запятыми списки в качестве аргументов вызова функции . На самом деле, есть пример, описывающий точно, чего вы хотите достичь. Тем не менее, чтобы заставить это работать так, как вам хотелось бы, вам также нужно «разобрать» LineSpec
должным образом. Пожалуйста, посмотрите следующий фрагмент кода, чтобы получить решение для приведенных вами примеров.
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();
А, вот примерный вывод: