How to calculate mean value of a parameter within interval of other parameters

2 views (last 30 days)
Hi,
The title is perhaps not very clear...
I have a 3 vectors X, Y and Z of same dimension N.
I have also 2 intervals vectors containing the limit of each interval (wich are not necessary equidistant) of X and Y values: int_X (dimension i_X) and int_Y (dimension i_Y).
I want to calculate the mean value of Z for each interval of both int_X and int_Y (each "square" of the (int_X,int_Y) plane), and put the results in a matrix of dimension (i_X,i_Y).
Of course, I can do it with 2 "for" loops, but I would like to find a more elegant method without for loops.

Answers (1)

millercommamatt
millercommamatt on 26 Jun 2020
Assuming I've understood your description of your arrays correctly... i.e. that int_X and int_Y contain max and min values for the X and Y bounds respectively. e.g. X_int = [x_min, x_max];
Z_bounded = Z(X>int_X(1) & X<int_X(2) & Y>int_Y(1) & Y<int_Y(2));
mean(Z_bounded(:));
If there are multiple intervals defined, you could put the above in a for loop.
  1 Comment
Laurent Fregosi
Laurent Fregosi on 26 Jun 2020
Thanks Matthew.
But in fact, int_X contains sevral boundaries. For example, int_X = [0 1 2 5 10] and int_Y=[0 10 50 100].
I try to have the mean of Z for all the combination of each intervals of int_X and int_Y (for example one mean value will be when X is between 1 and 2 and Y is between 50 and 100, etc... for each combination
Hpe it's clear...

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!