一段简单的python改写成c语言
本帖最后由 妖娆乌龙茶 于 2021-9-3 14:39 编辑软件的环境是c语言,但只有python的程序。本人完全不会c语言{:10_266:} ,求助改写成c语言。
就是不会这个beta函数用c语言怎么写
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
from matplotlib import style
style.use('ggplot')
params=
x=np.linspace(0,1,100)
f,ax=plt.subplots(len(params),len(params),sharex=True, sharey=True)
for i in range(4):
for j in range(4):
alpha=params
beta=params
pdf=stats.beta(alpha,beta).pdf(x)
ax.plot(x,pdf)
ax.plot(0,0,label='alpha={:3.2f}\nbeta={:3.2f}'.format(alpha,beta),alpha=0)
plt.setp(ax,xticks=, yticks=)
ax.legend(fontsize=10)
ax.set_xlabel('theta',fontsize=16)
ax.set_ylabel('pdf(theta)',fontsize=16)
plt.suptitle('Beta PDF',fontsize=16)
plt.tight_layout()
plt.show() 这算改成了C语言吗?^_^
#include <stdio.h>
#include <Python.h>
int main(void) {
const char *code = "import matplotlib.pyplot as plt\n"
"import numpy as np\n"
"from scipy import stats\n"
"from matplotlib import style\n"
"style.use('ggplot')\n"
"params=\n"
"x=np.linspace(0,1,100)\n"
"f,ax=plt.subplots(len(params),len(params),sharex=True, sharey=True)\n"
"for i in range(4):\n"
" for j in range(4):\n"
" alpha=params\n"
" beta=params\n"
" pdf=stats.beta(alpha,beta).pdf(x)\n"
" ax.plot(x,pdf)\n"
" ax.plot(0,0,label='alpha={:3.2f}\\nbeta={:3.2f}'.format(alpha,beta),alpha=0)\n"
" plt.setp(ax,xticks=, yticks=)\n"
" ax.legend(fontsize=10)\n"
"ax.set_xlabel('theta',fontsize=16)\n"
"ax.set_ylabel('pdf(theta)',fontsize=16)\n"
"plt.suptitle('Beta PDF',fontsize=16)\n"
"plt.tight_layout()\n"
"plt.show()";
Py_Initialize();
PyRun_SimpleString(code);
Py_Finalize();
return 0;
}
既然你不会C语言,为什么要把这个代码改成C语言?
既然你不会C语言,怎么知道把这个代码改成C语言这件事是不是合适?
改,当然是完全可以改,只是没有合适的理由的话,这么做不值得
因为你要把底层函数全写一遍,这个工作量可不小
所以,你需要有必须这样做的理由
python比c好用就是因为他底层库多,你现在调了很多库函数,用C语言改的话还要自己去写你调用的函数的功能,这工作量很大,一个资深的程序员没有类似的资料情况下少说也得写3天,应该没人为了你这30鱼币给你改的 人造人 发表于 2021-9-3 15:44
既然你不会C语言,为什么要把这个代码改成C语言?
既然你不会C语言,怎么知道把这个代码改成C语言这件事是 ...
用的模拟软件默认所接受的解释程序就是c, 用python要改我这个模拟的环境,这是我模拟大工作里的一个小部分,不了解嘛,所以问问。谢谢啦 不大不小甲鱼 发表于 2021-9-3 16:12
python比c好用就是因为他底层库多,你现在调了很多库函数,用C语言改的话还要自己去写你调用的函数的功能, ...
原来如此,那我放弃了,谢谢啦 直接用c调用Python吧{:10_261:} wjp 发表于 2021-9-4 01:14
直接用c调用Python吧
只能Python调用C吧?新手,不太了解。 Asss-whom 发表于 2021-9-4 16:02
只能Python调用C吧?新手,不太了解。
#include <stdio.h>
#include <Python.h>
int main(void) {
const char *code = "import random\n"
"l = []\n"
"for i in range(10):\n"
" l.append(random.randint(1, 100))\n"
" if i == 5:\n"
" l = 0\n"
"print(l)";
Py_Initialize();
PyRun_SimpleString(code);
PyRun_SimpleString("l = 1");
PyRun_SimpleString("print(l)");
Py_Finalize();
return 0;
}
{:5_109:} 人造人 发表于 2021-9-4 17:24
这算改成了C语言吗?^_^
这还是调用python解释器吧,表面上是改完了,但是只改了个外表,本质上还是跑的python,还是要看应用场景 不大不小甲鱼 发表于 2021-9-6 08:32
这还是调用python解释器吧,表面上是改完了,但是只改了个外表,本质上还是跑的python,还是要看应用场景
对,调用的 python 解释器
页:
[1]