How to use memoization in MatLab?
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
if I have some function substantially more complicated than
function out = y(x)
out = 2*x;
end
but let's just go with this one... is there a way to save the value y(1) for example, so that if I call y(5) and then y(1) again, it's not going to CALCULATE y(1) but pull it from memory? Maybe have a function create a separate variable "y1" and store it? The problem is that I would like to not have to create empty variable BEFORE running the function (because i may not know what names they should have), i want it to create them by itself. Is there a way to do it? I guess one way would be to maybe create an empty array "y" and then store each value in its respective cell? So solution to y(1) would go to cell #1 in the array, and so on... This doesn't feel right tho. And I still don't know how that would prevent the function from doing the same calculation over and over again rather than just doing it once.
Any hints would be appreciated :]
0 commentaires
Réponses (2)
Prabhakar
le 24 Juil 2018
Memoize was added to MATLAB in R2017a.
The documentation is a good resource to begin with, or if you prefer here is a blog which walks you through it.
1 commentaire
Walter Roberson
le 24 Juil 2018
For earlier versions
See also https://www.mathworks.com/matlabcentral/answers/345464-recurrence-relation-for-any-given-n#comment_467043 in which I present the memoized version of a recursive relationship, and code that emulates memoize() for use with earlier versions.
Voir également
Catégories
En savoir plus sur Performance and Memory dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!