I found a solution! It is not very elegant but it works fine. It makes use of the fact that my weighting function (F) expands outward from a single maximum value and they are closed lines. These attributes allows the cumulative weighting function to be determined by sorting and cumulatively summing F:
% Sort the weighting function and take the cumsum
[FF,I] = sort(F(:),1,'descend');
FFsum = cumsum(FF);
% Load the values of FFsum into YY according to the original order of F
% given by index I
YY = ones(length(FF),1);
YY(I) = FFsum;
% Reshape YY to have the orignal form of F
YYY = reshape(YY,size(F));
% Plot the contours of the cumulaitve weight
figure
pcolor(x1,x2,F)
shading interp
figure
contour_levels = [[0.1:0.1:0.9] 0.98];
contour_labels = [[0.1:0.2:0.9] 0.98];
[C,h] = contour(x1,x2,YYY,contour_levels);
clabel(C,h,contour_labels,'labelspacing',500)