Tag: matlab

Matlab是否会复制传递给mex函数的数据?

关于延迟复制:Matlab会不会复制传递给mexFunction的数据,这会修改它? 例如在 myMex(input1(:,:,ii), input2(:,:,ii)) 可以肯定的是,输入矩阵永远不会被复制,所以人们可以通过并修改它,而不必返回引用?

在C / C ++中是否有一个accumarray()的例子

我们试图理解MATLAB的准确函数,想为我们的理解编写C / C ++代码。 有人可以用样本/伪代码帮助我们吗?

使用C读取.mat文件:如何正确读取单元格结构

我基本上试图在C代码中翻译Matlab代码。 这是我上一个问题的延伸。 在Matlab中,我使用了包含matrices (double) of variable sizes cell-structures 。 这是我的* .mat文件supposed to store的玩具示例: Matlab代码: 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 8]; [-1.0 -1.0]]; […]

使用Matlab进行multithreading处理

我正在研究Matlab上的一个项目,我们必须优化性能,我正在考虑并行化一些从.m文件生成的函数调用。 这个想法很简单,从Matlab文件(.m)调用编译为MEX的C文件,并从该C文件创建几个线程并从每个线程回调matlab函数。 理论工作,我可以创建线程,我也可以调用matlab函数,问题是我不能从线程调用matlab函数: //Global variables mxArray **g_plhs; mxArray **g_prhs; int g_nlhs; int g_nrhs; //Thread function DWORD WINAPI my_function( LPVOID lpParam ) { mexCallMATLAB(g_nlhs,g_plhs,g_nrhs,g_prhs,”matlab_function”); return 0; } //Main function void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { DWORD dwThreadIdArray[MAX_THREADS]; HANDLE hThreadArray[MAX_THREADS]; g_plhs = plhs; g_prhs = prhs; g_nlhs = nlhs; g_nrhs = nrhs; […]

优化查找复数作为输入

我想知道是否有一个C / C ++库或Matlab代码技术来使用最小化求解器来确定实数和复数。 这是一个代码片段,显示了我想要做的事情。 例如,假设我知道Utilde ,但不知道x和U变量。 在给定的Utilde ,我想使用优化( fminsearch )来确定x和U 请注意, Utilde是一个复数。 x = 1.5; U = 50 + 1i*25; x0 = [1 20]; % starting values Utilde = U * (1 / exp(2 * x)) * exp( 1i * 2 * x); xout = fminsearch(@(v)optim(v, Utilde), x0); function diff = optim(v, Utilde) x […]

关于在video中找到学生

我现在正致力于眼动追踪项目。 在这个项目中,我正在跟踪摄像头video中的眼睛(分辨率为640X480)。 我可以在每一帧中找到并跟踪眼睛,但我需要找到瞳孔。 我阅读了很多论文,其中大部分都提到了Alan Yuille的可变形模板方法来提取和跟踪眼睛特征。 任何人都可以帮助我使用任何语言的代码(matlab / OpenCV)吗? 我尝试过不同的阈值,但由于眼睛区域的分辨率低,它不能很好地工作。 我非常感谢在video中找到瞳孔甚至虹膜的任何帮助。

单精度浮点精度降低精度差

我正在尝试将范围缩减作为实现正弦函数的第一步。 我遵循KC NG的论文“减少巨大论据”中描述的方法 当使用0到20000的x的输入范围时,我得到的误差大到0.002339146.我的错误显然不应该那么大,我不知道如何减少它。 我注意到误差幅度与输入θ幅度与余弦/正弦相关。 我能够获得本文提到的nearpi.c代码,但我不确定如何将代码用于单精度浮点。 如果有人有兴趣,可以在以下链接找到nearpi.c文件: nearpi.c 这是我的MATLAB代码: x = 0:0.1:20000; % Perform range reduction % Store constant 2/pi twooverpi = single(2/pi); % Compute y y = (x.*twooverpi); % Compute k (round to nearest integer k = round(y); % Solve for f f = single(yk); % Solve for r r = single(f*single(pi/2)); % Find […]

python中的指针

我是一名物理专业的学生,​​主要是用Python和Matlab编程,现在进入C语言以提高我的模拟性能。 简单的问题:Python中有指针吗? Matlab中有指针吗? 如果是的话,我可以使用与C中类似的“轻松”吗? 我知道在Python和Matlab的高级别背后,有很多指针在起作用。 问题是:我可以在Python或Matlab中明确地使用这个C代码: int *p; int someValue = 1; p = &someValue; doSomethingForMe = callSomeFunction(p); 我知道无论如何都可能没有意义(对于大多数应用程序)。 我只是想学习。

需要建议将代码转换为Matlab_extension 1

这是前面提到的问题的扩展: 链接 。 简而言之,我试图将一个C程序转换为Matlab并寻找你的建议来改进代码,因为代码没有提供正确的输出。 C程序: void prga(unsigned char S[], unsigned char out[], int len) { int i=0,j=0,x,t; unsigned char key; for (x=0; x < len; ++x) { i = (i + 1) % 256; j = (j + S[i]) % 256; t = S[i]; S[i] = S[j]; S[j] = t; out[x] = S[(S[i] + S[j]) […]

为C程序创建MATLAB MEX文件

我是一位经验丰富的MATLAB用户,但对C和MEX文件来说却是全新的。 我有一个用C语言编写的复杂程序,我需要在MATLAB中调用它。 该程序由一个文件夹中的几十个文件组成,其中一个名为main.c,处理来自命令行的输入将结果传递给进行实际计算的其他类。 通常,要从命令行安装此程序,我将在UNIX命令提示符下运行./configure,make。 然后,要运行该程序,。/ runMyProgram -f input_file.txt -p some_parameters。 该程序将一个由数字列表组成的文本文件作为输入,并在命令窗口中打印结果表。 我想为程序提供MATLAB数组(而不是.txt文件)并返回一个数组(而不是打印的结果表)。 我已经阅读了The Mathworks中的MEX文档(我发现它非常不透明),以及其他一些“教程”,但我完全迷失了 – 这些示例适用于非常简单的单文件C程序,并没有真正讨论过如何处理更大更复杂的程序。 是否足以用执行相同操作的MEX文件替换main.c文件? 另外,如何在MATLAB中编译整个包? 我将非常感谢任何关于从哪里开始的简单英语建议,或指向以易于理解的方式处理该主题的任何教程。