如何使用x轴的对数缩放绘制自定义函数

时间:2014-01-01 19:57:52

标签: matlab plot

我对Matlab比较陌生。我想要做的就是将x = @(n) 1/n^n的序列0绘制成10。首先是自然缩放,然后是x轴的对数缩放。

我尝试将semilogx用于第二个情节。但是,我总是收到一条错误消息:

  

未定义函数'semilog'用于'function_handle'类型的输入参数。

如果我尝试按以下方式定义xn = 0:.01:10; x = 1/n.^n;我收到错误消息:

  

矩阵尺寸必须达成一致

我如何定义x并绘制两张图?

3 个答案:

答案 0 :(得分:2)

在你的情况下,n是一个向量,所以你必须首先使用Matlab数组运算符来定义你的匿名函数,用于除法和求幂,如下所示:

x = @(n) 1./n.^n

然后举个例子:

n = [0:.01:10];

现在制作你的情节:

figure; semilogx(n,x(n)); grid on;

这给出了如下情节:

enter image description here

答案 1 :(得分:2)

x = @(n) 1./n.^n
n = 0:.01:10;
semilogx(x(n))

Mathematica graphics

答案 2 :(得分:2)

您需要在.之前添加/

n = 0:.01:10; x = 1./n.^n;
plot(n,x)
figure
semilogx(n,x)

在您的代码中,1/n.^n被解释为“n.^n的倒数”,其中n.^n是一个向量;并且矢量的倒数未定义。你想要的是那个向量的元素明智的逆,为此你需要.之前的额外/