Blogs
使用gsl做最小二乘法的非线性拟合
Submitted by hubdog on Mon, 2022-01-10 17:20拟合的函数方程是
y=alpha*exp(-kappa*x);
拟合后能正确算出alpha和kappa的值,用gsl写这个玩意好啰嗦,用python的curve_fit10行代码就能搞定。
type PFitData=^TFitData; TFitData=record t:Pdouble; y:Pdouble; n:Integer; end; function market(alpha,kappa, t:double):double; begin result:=alpha*exp(-kappa*t); end; function func_f(x: Pgsl_vector; params: Pointer; f: Pgsl_vector): Integer;cdecl; var data:PFitData; alpha:double; kappa:double; i:Integer; t,yi,y:double; begin data:= PFitData(params); alpha := gsl_vector_get(x, 0);
Delphi无法引用Windows的DLL中Export的变量
Submitted by hubdog on Mon, 2022-01-10 16:59今天要调用gsl的dll中输出的variable结果失败了,一开始我当成函数去引用发现不行。
然后没有找到delphi中引用dll中输出的global变量的方法。
没办法改写了gsl dll中的变量为函数就可以了,真是很奇怪,以前一直没有注意到这个问题。
追记:也许可以直接用GetProcAdress获取变量直接映射为一个指针而不是函数,但是我没有测试,也许是可行的。
或者直接external '变量名',都没有测试,不清楚是否可行
如何创建一个Matlab自定义硬件的Simulink输入源Block
Submitted by hubdog on Fri, 2021-12-03 11:28Sketchup 的选取物体进行移动旋转的脚本
Submitted by hubdog on Wed, 2021-10-27 12:24
def rotate(ent, axis, angle) rv = ent.transformation.zaxis if axis == "z" rv = ent.transformation.yaxis if axis == "y" rv = ent.transformation.xaxis if axis == "x" rp = ent.transformation.origin ent.transform!(Geom::Transformation.rotation(rp, rv, angle)) end mod = Sketchup.active_model # Open model ent = mod.entities # All entities in model sel = mod.selection # Current selection componame="abc" compo = Sketchup.active_model.definitions[componame] if compo puts "#{componame} found: doing something else..."
很恶心的一个C++编译问题
Submitted by hubdog on Thu, 2021-10-07 17:54https://developercommunity.visualstudio.com/t/error-c2872-byte-ambiguous-symbol/93889
原因工程设置了C++17,std::byte是C++17中引入,导致了这个编译错误。
改成C++14就没有问题了
多IP系统中用Python使用指定IP进行外网访问
Submitted by hubdog on Fri, 2021-09-24 16:17AMD系统中安装Mac OSX虚拟机
Submitted by hubdog on Wed, 2021-09-22 13:43https://www.youtube.com/watch?v=ogEPiiufrO0
参考上面youtube视频
注意,windows home版中需要禁用hyper-v,需要修改注册表
https://kb.vmware.com/s/article/2146361?lang=zh_CN\
https://bhanuwriter.com/virtualized-amd-v-rvi-is-disabled/
bcdedit /set hypervisorlaunchtype off