vectorization of anonymous function?
3 次查看(过去 30 天)
显示 更早的评论
I managed to vectorize the function below using inline command:
u_function=inline(vectorize('sin(x*y*z^2)'),'x','y','z') x=[1 2 3 4]; y=[3 4 3 4]; z=[1 2 4 4]; u=u_function(x,y,z)
How do I rewrite it in terms of an anonymous function?
Cheers, Jan
0 个评论
回答(1 个)
Mischa Kim
2016-12-18
编辑:Mischa Kim
2016-12-18
Jan, is the resulting u(x,y,z) also a 1-by-4?
How about:
u = str2func(vectorize('@(x,y,z)sin(x*y*z^2)'));
x = [1 2 3 4]; y = [3 4 3 4]; z = [1 2 4 4];
u_eval = u(x,y,z)
2 个评论
Jan
2016-12-18
Move from Answer section (please pst comments in the comment section - Thanks)
Hi Mischa,
thank you, all vectors should have the size, yes. However, I am going to use more difficult forms of functions instead of x*y*z^2 and would like Matlab to put dots automatically (using vectorize?) within anonymous function. Is there a way to do it?
Jan
2016-12-18
Mischa wrote: Jan, understood. Check out the updated answer above. Does this do the trick?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Function Creation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!