【问题标题】:ValueError: x and y must have same first dimension, but have shapes (10,) and (1,)ValueError:x 和 y 必须具有相同的第一维,但具有形状 (10,) 和 (1,)
【发布时间】:2020-03-03 22:41:17
【问题描述】:

我正在努力绘制这个函数,所以基本上我必须为我的第一个函数创建一个 x 向量和 f 向量,绘制它,然后创建一个范德蒙德矩阵。我正在努力处理这段代码的第一部分。

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-6,6,10) #test interval

    def main():
        Vt = Vandermonde(x)

        print(Vt)

    def f1(x): 
        f1 = 1/((x)**2+1)
        return f1
        print(type(f1),f1.shape)
        print(f1)


    plt.plot(x,f1)
    plt.show()

【问题讨论】:

  • 您定义了一个f1 函数,但我没有看到您运行它。不要为函数和变量使用相同的名称(即使 Python 允许,它也会让你感到困惑)。
  • 嘿,当我运行它时,我收到一条错误消息“ValueError:x 和 y 必须具有相同的第一维,但具有形状 (10,) 和 (1,)”
  • 你明白我的评论了吗?您没有计算yf1 仍然是函数,而不是函数产生的数组!
  • 那么我如何把这个函数变成一个数组并让它和我的 x 有相同的维度呢?抱歉,我对编程有点陌生

标签: arrays numpy matplotlib matrix plot


【解决方案1】:

plt.plot(x,f1) 替换为 plt.plot(x,f1(x)) em> 因为 f1 是指函数的名称,所以它是一个 python 对象,但您要做的是使用 x 作为参数调用该函数。

【讨论】:

    猜你喜欢
    • 2022-01-09
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2016-11-10
    相关资源
    最近更新 更多