八度不绘图功能

时间:2019-04-12 06:48:16

标签: plot graph octave

我正在准备一张结合蛋白行为图。

x = linspace(0,1,101)
y = ( x.*2.2*(10^-4))/(( x.+6.25*(10^-2))*(x.+2.2*(10^-2)))
plot(x,y)

应该导致钟形曲线(也许)或一条曲线,但我正在得到线性图。我已经使用其他软件进行了检查,并得出了该曲线的功能。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

怎么了

您要使用./数组除法,而不是/矩阵除法。

如何调试此

首先,在此处留一些空间,以便于阅读。并添加分号以抑制大输出。

x = linspace(0, 1, 101);
y = (x.*2.2*(10^-4)) / ( ( x.+6.25*(10^-2)) * (x.+2.2*(10^-2)) );
plot(x, y)

然后将其粘贴在一个函数中以方便调试:

function my_plot_of_whatever
x = linspace(0, 1, 101);
y = (x.*2.2*(10^-4)) / ( ( x.+6.25*(10^-2)) * (x.+2.2*(10^-2)) );
plot(x, y)

现在尝试:

>> my_plot_of_whatever
error: my_plot_of_whatever: operator *: nonconformant arguments (op1 is 1x101, op2 is 1x101)
error: called from
    my_plot_of_whatever at line 3 column 3

当您收到类似*/的投诉时,通常意味着您真正需要元素式“数组”操作.*和{{ 1}}。解决该问题,然后重试:

./

bad linear plot

那么这是怎么回事?让我们使用调试器!

>> my_plot_of_whatever
>>

啊哈。您的>> dbstop in my_plot_of_whatever at 4 ans = 4 >> my_plot_of_whatever stopped in /Users/janke/Documents/octave/my_plot_of_whatever.m at line 4 4: plot(x, y) debug> whos Variables in the current scope: Attr Name Size Bytes Class ==== ==== ==== ===== ===== x 1x101 808 double y 1x1 8 double 是标量,因此每个X值都使用相同的Y值。这是因为当您确实需要y阵列划分时,您正在使用/矩阵划分。解决该问题:

./

宾果

enter image description here