Matlab 如何制作x轴变化的多个图形?
我需要在同一个y轴上绘制多个图形,但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上进
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
希望有帮助