How to tell an multi-output anonymous function to vectorize its output components which are constant
1 次查看(过去 30 天)
显示 更早的评论
Hello friends,
I have an apparently simple but very annoying problem. Consider the function handle
f=@(x,y) [x+y;2;x*y;x^2-1;3];
When I want to calculate the expression f([1 2],3) then matlab gives an error message ('mismatch between dimensions'). Of course, I can easily fix this problem by re-defining the above function handle as
f=@(x,y) [x+y;2+x-x;x*y;x^2-1;3+x-x];
However, the problem is that my anonymous function is defined whithin a for-loop where I cannot mannually add x-x to the constants plus that
I do not know beforehand which outputs are constant and which are not. The natural way to fix this problem seems to be to update f like
f=@(x,y) f(x,y)+[0;x-x;0;0;x-x];
But, this trick does not work, unfortunately.
It is greatly appreciated if anybody has an idea how to fix this really annoying problem.
Thanks in advance
Babak Shojaei Arani
0 个评论
采纳的回答
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!