Tag: matlab

如何使用matlab编码器将matlab函数’pchip’转换为c代码

我有Matlab Coder的问题。 我想从Matlab插值函数pchip生成C代码。 我用coder.screenervalidation了这个函数,它说它可用于代码生成但是当我尝试构建pchip.m文件时出现这个错误: 独立代码生成不支持“pchip”function。 请参阅coder.extrinsic的文档以了解如何在模拟中使用此函数。 谁能帮我? 我真的需要在C中为我正在编写的程序转换此函数。

如何编程使调试很容易?

我正在尝试开发一些基于图像处理的非常复杂的应用程序。 我广泛使用openCV。 然而,随着程序复杂性的增加,我发现调试程序非常困难。 只是为了调试我必须在Matlab中开发相同的算法。 这样做的主要原因是即使代码停止运行或崩溃,即使matlab代码中存在任何错误,变量的值也会保留。 由于值存在,我可以使用不同的可视化工具来分析它; 喜欢绘图; 将其显示为图像。 我们可以在C中实现任何方式或function,以便我们可以采用相同的行为。

用C ++编写的Matlab gamfit和gampdf函数

我想知道是否有人已经在C,C ++或Objective-C中实现了两个Matlab函数gamfit和gampdf 。 在我继续自己实施之前,我想我会问。

在mex文件matlab中使用magma_dysevd

我尝试在matlab中编写使用magma库,所以我基本上编写了一个mex函数,它使用magma函数合并了c代码,然后将这个mex函数编译成mexa64文件,因此我可以在matlab中使用。 mexfunction或source c代码如下:(称为eig_magma) #include #include #include #include #include #include // includes, project #include “flops.h” #include “magma.h” #include “magma_lapack.h” #include “testings.h” #include #include “mex.h” #define A(i,j) A[i + j*lda] extern “C” void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { #define L_OUT plhs[0] #define A_IN prhs[0] #define S_OUT plhs[1] magma_init(); real_Double_t gpu_perf, gpu_time; double […]

从C读取.mat文件:可以读取变量; 但不能正确返回

我正在尝试使用MATLAB-API使用C(NOT C ++)读取.mat文件。 这是MATLAB代码,它会创建我想要的.mat文件: A = [[1 2 3]; [5 7 1]; [3 5 9]]; B = [[2 4];[5 7]]; Creator = ‘DKumar’; nFilters = 2; Filters{1} = [[-1.0 -1.0 -1.0]; [-1.0 8 -1.0]; [-1.0 -1.0 -1.0]]; Filters{2} = 2.0*[[-1.0 -1.0 -1.0]; [-1.0 8 -1.0]; [-1.0 -1.0 -1.0]]; cd(‘/home/dkumar/CPP_ExampleCodes_DKU/Read_mat_File’); save(‘Test_FILE.mat’, ‘A’, ‘B’, ‘Creator’, ‘nFilters’, ‘Filters’); […]

如何使用MATLAB fread读取txt文件?

我尝试使用fread来读取文本文件 我的代码只有2行 fid = fopen(‘1.txt’, ‘r’); c = fread(fid,’double’, skipvalue); 我测试了不同的格式,如double,float32,float64和不同的skipvalue从0到8,但没有一个组合工作。 数据由交流程序代码fprintf(文件,“%f \ n”,sample [i])记录; 样本数据(每行只有一个数据) -0.992224 0.932078 -0.474954 -0.659479 -0.994677 -0.380766 -0.643983 0.425023

“在架构x86_64中找不到符号”,表示在C中使用CPLEX API的MEX文件

我目前正在MATLAB中编写一个MEX文件,它使用C语言中的CPLEX API来解决线性编程问题。 不幸的是,当我尝试编译并且我不知道如何解决它时,我遇到了“找不到架构x86_64的符号”问题。 一些基本信息: 我可以编译yprime.c和其他不使用CPLEX API的MEX文件 我在Mac OSX 10.7.2上使用MATLAB 2011b 我使用的是XCode 4.2中包含的GCC 4.2软件包。 我已经应用了XCode 4.2 Patch for MATLAB 我非常感谢人们可能提出的任何建议。 我在下面列出了一份详细的错误报告。 -> mexopts.sh sourced from directory (DIR = $PREF_DIR) FILE = /Users/berk/.matlab/R2011b/mexopts.sh —————————————————————- -> MATLAB = /Applications/MATLAB_R2011b.app -> CC = llvm-gcc-4.2 -> CC flags: CFLAGS = -fno-common -no-cpp-precomp -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.5 -fexceptions -Wall CDEBUGFLAGS […]

实现最小化方法

我在2个变量x1,x2有一个函数 f = 3*x1^2 + 4*x2^2 + 5*x1 + 6*x2 + 10 考虑x是行向量,使得x = [x5,x6] ,其中x5,x6是向量的分量。 如果符号混淆,让我们考虑x = [x1,x1]但x1,x2可以是任意组件。 对于y ,同样的论点也适用。 然后我想找到a from (x + ay)这样它会使f最小化。 a是实常数, x和y是向量。 这在上面解释了。 如果这没有意义,那么让我们将x,y视为具有2个位置的1维数组。 因此,x(1),x(2),y(1),y(2)是它们的组成部分。 然后我想将数组y乘以符号变量a 。 例如, x=[4,5] , y=[-2,3]则, (x + ay) = (4,5) + a(-2,3) = (4-2a,5+3a) 。 a是这里未知的符号变量。 在f1替换(更清楚的是, f x1 = 4-2a的定义中的第一个参数,第二个参数x2=5+3a ) f1 […]

带有匹配括号的正则表达式

我正在尝试从C源代码中提取特定的硬编码变量。 我剩下的问题是我想解析数组初始化,例如: #define SOMEVAR { {T_X, {1, 2}}, {T_Y, {3, 4}} } 这足以将此示例解析为“{T_X,{1,2}}”和“{T_Y,{3,4}}”,因为这样可以递归以获得完整的结构。 但是,它需要足够通用,以便能够解析任何用户定义的类型。 更好的是正则表达式列表,可以用于来自一般C代码构造的额外值,如#define ,枚举和全局变量。 C代码是提供给我的,所以我无法控制它。 我宁愿不写一个一次解析一个字符的函数。 但是,有一系列正则表达式是可以的。 这不是将文件导入MATLAB或基本正则表达式的问题。 我正在使用特定的正则表达式来保留括号中的分组。 编辑:看起来正则表达式不进行递归或任意深度匹配。 根据这里和这里 。

在mex上使用整数数组

我想将一个整数数组从MATLAB传递给C.我尝试使用类型uint64_T但它一直崩溃。 使用mxGetPr()获取双指针工作正常,但我需要将内容类型转换为整数,并且在每次迭代中这样做可能会很慢。 我在mexFunction中试过这个: uint64_T *l; l= (uint64_T *)mxGetData(prhs[1]); 调用此变量的函数具有以下forms: void XAction( const double *v, const uint64_T *l, double *w) { for (j=c; j; j–) for (i=r-1; i; i–) w[i] =v[l[r*j +i]] } 我在类型转换中犯了错误吗? 我已经看到了这个答案: 如何在MEX函数中读取整数数组,但我无法取得进展。