Повторяющиеся последовательности в одном графике Matlab - PullRequest
1 голос
/ 28 марта 2012

скажем, у меня есть 2 вектора:

a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
b = [1, 3, 5, 7, 9, 7, 5, 3, 1];

Я хочу построить эти векторы друг против друга, где существо X, а b - Y.

Однако, хотя я хочу, чтобы отображаемая точка находилась в правильном месте, я хочу, чтобы фактические значения, показанные на оси X, были функцией значений в a, где результат функции повторяется в течение заданного периода. И я хочу, чтобы эти значения были последовательными вдоль оси.

Например, скажем, функция для значения, отображаемого на оси X, - mod(a - 1, 3) + 1. Я хотел бы, чтобы ось X читала что-то вроде 1, 2, 3, 1, 2, 3, 1, 2, 3, как в example graph

У меня такое ощущение, что может потребоваться какая-то комбинация subplot и axes, но я не вижу ничего очевидного в документации.

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Вы можете установить это через свойства осей xtick и xticklabel.

set(gca, 'xtick', a, 'xticklabel', mod(a,3)+1);

Это не даст вам тиков, которые вы описали, но mod(a-1,3)+1 даст. Я не уверен, что вам нужна функция, которую вы дали, или картинка, которую вы показали.

1 голос
/ 28 марта 2012

Попробуйте установить XtickLabels, вот так:

>> set(gca,'XTickLabel',{'1','2','3'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...