Overload mtimes for double*char
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I am working on a Matlab class that handles numbers/matrices with physical units. I would like the user to be able to write the input as (double)*(char), like this:
L = 10*’m’ % L is ten meters long
This operation calls the mtimes function for the double class. I can easily overload this function and make it work as I want with respect to (double, char)-input, but I still want it to work normally for (double, double)-input. Using * inside the mtimes function with (double, double)-input simply refers the function back to itself, resulting in an infinite regression.
Can I modify the original double mtimes function, or how do I go about this?
Thanks
0 comentarios
Respuesta aceptada
James Tursa
el 30 de En. de 2013
Editada: James Tursa
el 30 de En. de 2013
The short answer is DON'T DO THIS! There are many built-in MATLAB functions that do (double)*(char) operations and depend on getting double results. If you overload this operation with your own you will end up breaking a bunch of built-in MATLAB functions. (And also potentially breaking any other code you happen to download from others, such as from the FEX).
To answer your question directly, however, you can sometimes use the function named 'builtin' to do things like this (but DON'T DO IT for your proposed case!)
Más respuestas (2)
Matt J
el 30 de En. de 2013
You should define your own char class (e.g., mychar) with its own mtimes method.
0 comentarios
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!