need help vectorizing a complicated loop
이전 댓글 표시
Hi,
I need to evaluate a vector of a function on a mesh then sum that vector at each point on the mesh. Let me elaborate:
I have a mesh:
a = -0.5:0.001:0.5;
b = a;
[A,B]=meshgrid(a,b);
At each point on that mesh, I want to evaluate a function over a vector (here, instead of giving the vector values I'm just trying to indicate that I have some vectors with some length):
% I have 3 vectors of length 2000 with some data in them
s = 2000x1 double, c = 2000x1 double, y = 2000x1 double
%at each point A,B on grid evaluate:
fake_function_vec = (c.*A+s.*B-y).^2
%result is some vector of length 2000. Now sum that vector
fake_function = sen(fake_function_vec,1)
%repeat for every other point on the mesh
I can't figure out how to do this efficiently. I'm currently using two for loops to evaluate the function (which returns a vector) and summing that vector at each point in the grid. Surely there must be a better way!
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!