MATLAB: How to express inner product of two vectors in Stateflow action language

action languageinner productstateflowvectors

I want to compute the inner product y of two vectors u and v (same size, both based on input from Simulink) in Stateflow action language. I have tried
x=ml.transpose(u)
y=ml.(x*v)
but during compilation this results in a coder error "Cannot reshape Local Data 'x' (#…) ([…]) to Local Data 'y' (#…) (scalar) for operator =. Please refer to object (#…)." Apparently, the "ml." notation only works with functions, not with operators such as '*'. Would there be a way to write a product as a function – something like y=ml.product(x,v)?
An alternative might be
x=ml.transpose(u)
y=ml('x*v')
but this requires x and v to be defined in the Matlab workspace, which would mean I have to export them first. This seems to be a rather laborious solution.
Any ideas?

Best Answer

Try the function times for inner product of two vectors.