<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def match_val_type(vals, vals_bounds, vals_types):
    '''
    Update values in the array, to match their corresponding type
    '''
    vals_new = []

    for i, _ in enumerate(vals_types):
        if vals_types[i] == "discrete_int":
            # Find the closest integer in the array, vals_bounds
            vals_new.append(min(vals_bounds[i], key=lambda x: abs(x - vals[i])))
        elif vals_types[i] == "range_int":
            # Round down to the nearest integer
            vals_new.append(math.floor(vals[i]))
        elif vals_types[i] == "range_continuous":
            # Don't do any processing for continous numbers
            vals_new.append(vals[i])
        else:
            return None

    return vals_new