【问题标题】:Octave division of a binomial breaks plot二项式中断图的八度除法
【发布时间】:2019-09-16 21:48:07
【问题描述】:

我不确定这是否是此问题的正确堆栈交换。我通常使用 javascript 和画布来绘制方程。我正在尝试八度。我无法在分区的两侧渲染具有相同变量的任何函数。测试方程:

x=0:1:512;
Vr=x/100;
clf;
plot((50*Vr.^2-200*Vr)/(Vr-3), 'k-', 'linewidth', 3.0);
axis([0 512 -256 256]);

没有除法就可以正常工作:

plot((50*Vr.^2-200*Vr), 'k-', 'linewidth', 3.0);

屏幕截图:https://imgur.com/a/nWkXstX 第三个是用javascript渲染的除法方程。

八度不支持这种相当基本的算术,还是我缺少语法怪癖?

【问题讨论】:

    标签: plot octave gnuplot


    【解决方案1】:

    尽管我讨厌自己回答自己的问题,但我在 octave 的文档中找到了答案。

    https://octave.org/doc/v4.2.1/Arithmetic-Ops.html

    '/' 将左边乘以右边的倒数。看起来是对的,因为 (Vr/3) 的反面听起来像是我想要的,直到我继续阅读。 './' 是“逐元素右除”。因此 plot 函数将 Vr 视为所有坐标的矩阵,并用一个方程计算一个矩阵。这在我阅读的任何文档中都不清楚。说真的,这应该在顶级帮助部分。

    所以是“语法怪癖”。八度的正确语法是:

    plot((50*Vr.^2-200*Vr)./(Vr-3), 'k-', 'linewidth', 3.0)
    

    这行得通。不过,我想我会坚持使用 JS,如果只是为了避免需要将我的方程转换为八度音阶的怪异语法。尽管如此,有一个不依赖于浏览器的选项很方便,但很古怪。

    【讨论】:

    • 存在两种处理除法的方法,因为有时您想乘以逆矩阵,而有时您想计算逐个元素的除法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多