Я хочу построить несколько строк с одним вызовом до plot()
, с разными стилями линий для каждой строки. Вот пример:Как передать массив спецификаций или стилей линий для построения?
Оба
plot([1,2,3]', [4,5;6,7;8,9], {'-o', '-x'})
и
hs = plot([1,2,3]', [4,5;6,7;8,9])
set(hs, 'LineStyle', {'--'; '-'})
не работают. Я пробовал целую кучу тайных комбинаций с квадратными и фигурными фигурными скобками, но ничего похожего на трюк.
Я знаю, что можно пройти через столбцы в Y и вызвать plot()
для каждого из них (например, в this question), но это не то, что мне нужно. Мне бы очень хотелось избежать использования цикла здесь, если это возможно.
Спасибо.
PS: Я нашел этот скрипт 'prettyPlot', в котором говорится, что он может сделать что-то подобное, но я хочу знать, есть ли какой-либо встроенный способ сделать это.
PPS: Для тех, кто хочет быстро решить эту проблему, попробуйте это:
for i = 1:length(hs)
set(hs(i), 'Marker', markers{i});
set(hs(i), 'LineStyle', linestyles{i});
end
например с markers = {'+','o','*','.','x','s','d','^','v','>','<','p','h'}
Спасибо за ваш ответ. Пример, который я дал в моем вопросе, состоял только в том, чтобы показать форму, в которую входят мои данные, т. Е. Массив для X, матрицу для Y. Эти структуры обычно очень большие, поэтому вручную разбивая их на отдельные аргументы на 'plot()' для меня это не очень практично. Есть ли способ передать какой-то массив ячеек, который волшебным образом раскрывается в спецификации параметров выше? – Aralox
Как насчет реорганизации Y1 и использования cellfun для итерации функции построения графика. Я добавил пример ответа. – Bambang
Эй, это выглядит намного лучше! Есть ли способ перестановки/преобразования регулярной матрицы i по j в массив ячеек, который выглядит как 'ydata' выше? В принципе, для преобразования моего числового массива x и y-матрицы в формы, которые будут работать с 'cellfun()' – Aralox