MuPAD generate::MATLAB to include element by element (dot) vector operations

2 Ansichten (letzte 30 Tage)
Kiron
Kiron am 3 Dez. 2011
Hello,
I am trying to compute a complicated analytical expression in MuPAD and generate code to implement in a MATLAB function, however I can't get the generated code to support the dot-syntax MATLAB requires for element by element vector operations. Here is a simplified example of what I am trying to do.
In MuPAD>>
f:=(c*z^3)/(a*x^2+b*y^2): print(Unquoted,generate::MATLAB(generate::optimize(f)))
Returns>>
t18 = z^2;
t17 = (c*t18*z)/(a*x^2+b*y^2); (c*z^3)/(a*x^2 + b*y^2)
My ideal output would be:
t18 = z.^2;
t17 = (c.*t18.*z)./(a.*x.^2+b.*y.^2);
There doesn't seem to be an option to select this in MuPAD's generate() help.
Anyone have experience with this?
Thanks,
Kiron

Antworten (1)

Walter Roberson
Walter Roberson am 3 Dez. 2011
The output is a text string. You can run MATLAB's vectorize() on the string lines.
  1 Kommentar
Kiron
Kiron am 3 Dez. 2011
Thanks for the quick reply!
I did not know about the vectorize() function, that will be useful at some point.
The extra function generate::optimize() can create something like 50 lines of code, but greatly simplifies and speeds up code. Wouldn't I have to run vectorize() on each line of code for that to work?
Right now, I simply find and replaced every '*', '/', and '^' to '.*', './' and '.^'. Crude, but effective.
-KM

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Get Started with MuPAD finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by