在单个matlab图中重复序列

时间:2012-03-28 16:25:28

标签: matlab plot

说我有2个向量:

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

我想将这些矢量相互映射,a为X,b为Y.

然而,虽然我希望绘制的点位于正确的位置,但我希望X轴上显示的实际值是a中值的函数,其中函数的结果在给定的时间段内重复我希望这些值沿轴顺序。

例如,假设在X轴上显示的值的函数是mod(a - 1, 3) + 1。我希望X轴读取1,2,3,1,2,3,1,2,3等内容 example graph

我觉得可能需要subplotaxes的某种组合,但我在文档中没有看到任何明显的内容。

2 个答案:

答案 0 :(得分:2)

您可以通过轴属性xtickxticklabel进行设置。

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

这不会为您提供您所描述的标记,但mod(a-1,3)+1会。我不确定你是否想要你提供的功能或你所展示的图片。

答案 1 :(得分:1)

尝试设置XtickLabels,就像这样,

>> set(gca,'XTickLabel',{'1','2','3'})