How to make two mxArray* scalar multiply each other?

Hi,
I have a simple step of multiplying two double scalar variables in mex. Why not the type "mxDouble" support multiply? Must I convert the mxDouble to double in c? My sample code is as below. I don't know much about the mx* type data. Thank you.
mxDouble* x = mxGetPr(prhs[0]);
mxDouble* y = mxGetPr(prhs[1]);
plhs[0] = mxCreateDoubleScalar (x*y);
% expression must have arithmetic or unscoped enum type

 Accepted Answer

x and y are pointers, so you need to dereference them to get at the double values they point to. So your code should be:
plhs[0] = mxCreateDoubleScalar (*x * *y);

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Release

R2020b

Asked:

on 15 Feb 2021

Answered:

on 15 Feb 2021

Community Treasure Hunt

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

Start Hunting!