meshgrid values to function without loop
8 views (last 30 days)
Show older comments
Hello, i want to give x,y coordinates to a self-written function. The current state is, that i use 2 loops. I think that this is a very ugly and computation consuming solution. Can someone help me to improve this?
x = linspace(0,1,11) ;
y = linspace(0,1,11) ;
[X,Y] = meshgrid(x,y) ;
for kk = 1:11
for nn = 1:11
Coordinate = [X(kk,nn) Y(kk,nn)];
Z(kk,nn) = f_SomeFunction(Coordinate,someConstant,...);
end
end
4 Comments
Accepted Answer
Rik
on 30 Jan 2019
If you are not prepared to change the function to accept non-scalar inputs, you can use this code to implicitly use for-loops. This can be faster in some circumstances, and it may look cleaner (even if that is subjective).
Coordinate = [X Y];
someConstant_array=repmat(someConstant,size(Coordinate));
Z = arrayfun(@f_SomeFunction,Coordinate,someConstant_array);
0 Comments
More Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!