我想知道如果没有任何解析公式,是否有一种方法可以在 Matplotlib 中添加第二个非线性 x 轴。或者简化是否有办法为原始 x 轴中的每个数字创建不同的标签。下图解释了我正在寻找的内容。不幸的是,类似的问题之前已经被问过,但没有得到解答。
我正在为 Python 的 C 代码创建一个包装器。C代码基本上在终端中运行,具有以下主要函数原型:
void main(int argc, char *argv[]){
f=fopen(argv[1],"r");
f2=fopen(argv[2],"r");
Run Code Online (Sandbox Code Playgroud)
所以基本上读取的参数是终端中的字符串。我创建了以下 python ctype 包装器,但看来我使用了错误的类型。我知道从终端传递的参数被读取为字符,但等效的 python 侧包装器给出以下错误:
import ctypes
_test=ctypes.CDLL('test.so')
def ctypes_test(a,b):
_test.main(ctypes.c_char(a),ctypes.c_char(b))
ctypes_test("323","as21")
TypeError: one character string expected
Run Code Online (Sandbox Code Playgroud)
我尝试添加一个字符,只是为了检查共享对象是否被执行,它与打印命令一样工作,但暂时直到共享对象中的代码部分需要文件名为止。我也尝试过
ctypes.c_char_p但是得到了。
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
Run Code Online (Sandbox Code Playgroud)
根据评论中的建议更新为以下内容:
def ctypes_test(a,b):
_test.main(ctypes.c_int(a),ctypes.c_char_p(b))
ctypes_test(2, "323 as21")
Run Code Online (Sandbox Code Playgroud)
但遇到同样的错误。
好吧,我没有意识到这const可能像指针一样令人困惑.有人可以在步骤中解释下面的代码到底做了什么const?
const int*const Method3(const int*const&)const;
Run Code Online (Sandbox Code Playgroud)
即使对于非新手程序员来说也是如此令人困惑.
因此,我正在阅读有关C 语言句柄的文章,并意识到我们将句柄实现为 void 指针,因此我们获得的“任何”对象/数据类型都可以将 void 指针转换为该类型的对象/数据并获取其值。所以我基本上有两个担忧:
1.如果让我们说下面的例子取自C中的Handle
typedef void* HANDLE;
int doSomething(HANDLE s, int a, int b) {
Something* something = reinterpret_cast<Something*>(s);
return something->doit(a, b);
}
Run Code Online (Sandbox Code Playgroud)
如果我们将值传递给函数dosomething(21,2,2),这是否意味着 HANDLE 指向的值是 21,如果是的话,当我们键入时,任何对象如何将其转换为该对象,它是否能够使用它,就像在这个例子中一样,所以在换句话说,指向对象 Something 的指针something将在哪里存储值 21。
2.其次,该链接还显示“因此,在您的代码中,您只需将 HANDLE 作为不透明值传递”,这实际上是什么意思?为什么我们要“传递句柄”?如果有人能给出更有说服力的使用对象的句柄示例,那就太好了!
因此,我在Python中具有以下代码段的成员方法:
def foo(self, param):
x = self._as_array(param)
if x in self:
raise KeyError('Data point {} is not unique'.format(x))
Run Code Online (Sandbox Code Playgroud)
这if x in self:是什么意思?它没有引用任何成员方法。例如,if x in self._some_array这是有道理的,但仅说self没有任何参考就意味着什么?
我来自c到c ++,并且熟悉语法。但是我只是用不熟悉的语法遇到了代码
int main() {
std::shared_ptr < CommonAPI::Runtime > runtime = CommonAPI::Runtime::get();
std::shared_ptr<HelloWorldProxy<>> myProxy =
runtime->buildProxy<HelloWorldProxy>("local", "test");
Run Code Online (Sandbox Code Playgroud)
有人可以解释语法的something < something > something作用还是语法的something<something<>> something作用。
我正在从 Python 过渡到 C,所以我的问题可能看起来很幼稚。我正在阅读有关 Python-C 绑定的教程,并提到:
在 C 中,所有参数都是按值传递的。如果要允许函数更改调用方中的变量,则需要传递指向该变量的指针。
问题:为什么我们不能简单地重新分配函数内部的值并且摆脱指针?
以下代码使用指针:
#include <stdio.h>
int i = 24;
int increment(int *j){
(*j)++;
return *j;
}
void main() {
increment(&i);
printf("i = %d", i);
}
Run Code Online (Sandbox Code Playgroud)
现在这可以用以下不使用指针的代码替换:
int i = 24;
int increment(int j){
j++;
return j;
}
void main() {
i=increment(i);
printf("i = %d", i);
}
Run Code Online (Sandbox Code Playgroud)