小编Iro*_*nil的帖子

使用curve_fit来拟合数据

我是scipy和matplotlib的新手,我一直在尝试将函数与数据相匹配.Scipy Cookbook中的第一个例子非常有效,但是当我尝试从文件中读取点时,我给出的初始系数(下面的p0)似乎从未真正改变,协方差矩阵总是INF.

我试图在一条线后拟合数据,但无济于事.我导入数据的方式有问题吗?如果是这样,有没有更好的方法呢?

import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
import scipy as sy

with open('data.dat') as f:
    noms = f.readline().split('\t')

    dtipus = [('x', sy.float32)] + [('y', sy.float32)]

    data = sy.loadtxt(f,delimiter='\t',dtype=dtipus)

    x = data['x']
    y = data['y']

    def func(x, a, b, c):
        return a*x**b + c

    p0 = sy.array([1,1,1])

    coeffs, matcov = curve_fit(func, x, y, p0)

    yaj = func(x, coeffs[0], coeffs[1], coeffs[2])

    print(coeffs)
    print(matcov)

    plt.plot(x,y,'x',x,yaj,'r-')
    plt.show()
Run Code Online (Sandbox Code Playgroud)

谢谢!

python curve-fitting scipy least-squares python-3.x

10
推荐指数
2
解决办法
3万
查看次数

verilog 中的二进制补码

我一直在尝试构建一个模块,该模块返回(3 位)输入的二进制补码表示(第一位是符号)。我认为以下代码在概念上是正确的,但我可能遗漏了它的结构:当我尝试编译时,出现以下错误:

(vlog-2110) Illegal reference to net "f_o".
(vlog-2110) Illegal reference to net "f_o".
(vlog-2110) Illegal reference to net "f_o".
Run Code Online (Sandbox Code Playgroud)

搜索该错误表明,在同时使用变量作为输入和输出时通常会出现该错误,但这不是我的情况。你能指出错误在哪里吗?

module ca2 (a_i,f_o);
  input  [2:0] a_i;
  output [2:0] f_o;

  always @(a_i[2:0] or f_o[2:0])
  begin
    if (a_i[2] == 1)
    begin
      f_o[2]   = a_i[2];
      f_o[1:0] = (~a_i[1:0] + 'b1);
    end
    else
    begin
      f_o = a_i;
    end
  end
endmodule
Run Code Online (Sandbox Code Playgroud)

verilog

5
推荐指数
1
解决办法
6万
查看次数