Problem with mxGetScalar in mex function cuda

조회 수: 10 (최근 30일)
davide
davide 2014년 5월 31일
댓글: davide 2014년 6월 2일
Hi *,
i've three different files: main.m makeOperator.m makeOperator_A.cu
In main.m:
global DICTIONARY
load('data.mat');
A = makeOperator();
x = rand( size(A,2), 1, 'double' );
R = A*x;
In makeOperator.m:
classdef makeOperator
properties
methods
..
function v = mtimes( obj, x )
global DICTIONARY
..
v = makeOperator_A( DICTIONARY);
end
..
end
In makeOperator_A.cu:
void mexFunction(int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[]) {
mxArray* tmp;
..
tmp = mxGetField(prhs[0],0,"nV");
nV = mxGetScalar(tmp);
..
}
Whit mxGetScalar(tmp) i obtain nV=0 instead of nV=72 that is the true value of nV saved in DICTIONARY.nV
Why?
Thanks,
Davide
  댓글 수: 2
James Tursa
James Tursa 2014년 5월 31일
Where is DICTIONARY coming from? The mat file? I don't see anything in your posted code that sets DICTIONAR.nV = 72.
davide
davide 2014년 6월 2일
DICTIONARY is in data.mat. DICTIONARY is a struct and nV is a field of a struct

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Write C Functions Callable from MATLAB (MEX Files)에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by