Create a matrix with multiple values at each element and apply a function to all?
Mostrar comentarios más antiguos
This is for optimization purposes - I have 2 linspaces of parameters, and a 2 parameter function f (random values/function):
Xs = linspace(0, 1000, 1000)
Ys = linspace(0, 10000, 10000)
f = @(x, y) cos(x) + sin(y)
I want to populate a matrix M which has size [length(Xs), length(Ys)], where each element of M is f(x, y) for each x in Xs and y in Ys.
I can do this slowly with a for/parfor loop - how can I use direct vectorisation to achieve this?
Thanks
Respuesta aceptada
Más respuestas (1)
the cyclist
el 9 de Abr. de 2020
Here is one way:
[XXs,YYs] = meshgrid(Xs,Ys);
fxy = f(XXs,YYs);
Categorías
Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!