How to convert C++ code into Matlab. How to write the below given part of code into matlab
2 views (last 30 days)
Show older comments
double logistic(double x)
{
if(x > 100.0) x = 1.0;
else if (x < -100.0) x = 0.0;
else x = 1.0/(1.0+exp(-x));
return x;
}
void ComputeFeedForwardSignals(double* MAT_INOUT,double* V_IN,double* V_OUT, double* V_BIAS,int size1,int size2,int layer)
{
int row,col;
for(row=0;row < size2; row++)
{
V_OUT[row]=0.0;
for(col=0;col<size1;col++)V_OUT[row]+=(*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
V_OUT[row]+=V_BIAS[row];
if(layer==0) V_OUT[row] = tanh(V_OUT[row]);
if(layer==1) V_OUT[row] = logistic(V_OUT[row]);
}
}
1 Comment
Guillaume
on 18 Aug 2015
A basic knowledge of C and matlab is enough to translate the above code, so what difficulties are you encountering?
Accepted Answer
Titus Edelhofer
on 18 Aug 2015
Hi Vandana,
that should be straight forward:
function y = logistic(x)
y = zeros(size(x));
y(x>100) = 1.0;
idx = x>=-100 & x<=100;
y(idx) = 1.0./(1.0+exp(-x));
and the main function
function V_OUT = ComputeFeedForwardSignals(MAT, V_IN, V_BIAS, layer)
V_OUT = MAT * V_IN + V_BIAS;
switch layer
case 0
V_OUT = tanh(V_OUT);
case 1
V_OUT = logistic(V_OUT);
otherwise
error('Unknown value for layer.')
end
Titus
0 Comments
More Answers (0)
See Also
Categories
Find more on Data Type Conversion in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!