我收到错误:
警告453:无法申请
(int DIM1,int DIM2,double** INPLACE_ARRAY1)
。没有定义任何类型图。
这里,我的C函数的原型如下:
void function(const int size1, double* Tab1,
const int size2, double* Tab2,
const int size3, double* Tab3,
const double alpha)
使用numpy.i
我按如下方式编写Swig接口function.i
:
%module function
%{
#define SWIG_FILE_WITH_INIT
#include "function.h"
%}
%include "numpy.i"
%init %{
import_array();
%}
%apply (int DIM1, double* INPLACE_ARRAY1) {
(const int size1, double* Tab1),
(const int size2, double* Tab2),
(const int size3, double* Tab3)};
%apply (int DIM1, int DIM2, double** INPLACE_ARRAY1) {
(const int size1, const int size2, double** Tab1)};
%include "function.h"
提前感谢您的建议。
答案 0 :(得分:0)
如果您查看numpy.i的文档,您会发现没有匹配(int DIM1, int DIM2, double** INPLACE_ARRAY1)
的类型图。这就是警告的意思(不能应用类型映射,因为没有定义这样的。)
此外,我不清楚你想要实现的目标。 (const int size1, const int size2, double** Tab1)
在函数中不作为参数出现,因此无论如何这样的类型映射都不会与您的函数匹配。
似乎只是删除了行
%apply (int DIM1, int DIM2, double** INPLACE_ARRAY1) {
(const int size1, const int size2, double** Tab1)};
应该完全解决你的问题。