Matlab 如何制作x轴变化的多个图形?

Matlab 如何制作x轴变化的多个图形?,matlab,matlab-figure,Matlab,Matlab Figure,我需要在同一个y轴上绘制多个图形,但x轴对我来说有点棘手: 假设它从0到a,增加1,它需要有一个不同间隔的a-1 它们中的每一个都应该在a处结束,但也必须有不同的初始化点。只有第一个从0开始,而下一个从上一个加一开始,如下图所示。这两条虚线,我用来尽可能清晰地想象我的想法,是没有必要的 我将感谢任何帮助 复制原始间隔0。。。aa次(据我了解,你将有a间隔,而不是a-1),这样你就得到了一个大小为[a X a+1]的矩阵X。将左下角的X三角形设置为NaN,以便现在的行表示您的(缩短)间隔。在X上进

我需要在同一个y轴上绘制多个图形,但x轴对我来说有点棘手:

假设它从
0
a
,增加1,它需要有一个不同间隔的
a-1

它们中的每一个都应该在
a
处结束,但也必须有不同的初始化点。只有第一个从
0
开始,而下一个从上一个加一开始,如下图所示。这两条虚线,我用来尽可能清晰地想象我的想法,是没有必要的

我将感谢任何帮助


复制原始间隔
0。。。a
a
次(据我了解,你将有
a
间隔,而不是
a-1
),这样你就得到了一个大小为
[a X a+1]
的矩阵
X
。将左下角的
X
三角形设置为
NaN
,以便现在的行表示您的(缩短)间隔。在
X
上进行计算。请注意,这些必须正确支持/忽略
NaN

之后,需要正确调整
X
中的值,以便随后绘制间隔。基本上,我们为每行添加一些固定值

最后,我们需要适当和有效的方法。因此,我们从
X
和修改的
X
中提取所有值,并去除
NaN

以下是完整的代码片段:

%参数
a=7;
%初始化间隔
X=repmat(0:a,a,1);
X=X.*(一个(尺寸(X))+万亿(纳米(尺寸(X)),-1));
%计算这些间隔;注意:X中有NaN
Y=sin(X/a*2*pi);
%修改X以进行打印
X_图=X;
X_图(2:end,:)=X_图(2:end,:)+cumsum(a:-1:2)。”;
%获取xticks
xt=X_图';
xt=xt(:);
xt(isnan(xt))=[];
%获取xticklabels
xtl=X';
xtl=xtl(:);
xtl(isnan(xtl))=[];
%密谋
图(X_图,Y);
xticks(xt);
xticklabels(xtl);
输出(倍频程5.1.0,也使用MATLAB在线测试)如下所示:

例如,如果只需要每个间隔的开始和结束,则必须进一步预处理
xt
xtl

希望有帮助