def predict_hypothesis_matrix(model, X):
    """ Compute the hypothesis matrix using the linear combination of 
    the optimal weights matrix (model) and the training inputs (Xi)
    
    Parameters
    ----------
    model: sparse matrix (k_values, m_values)
        the optimal weight matrix that solves the linear regression
    
    X: 2D-array shape (N_values, m_values)
        the training inputs (Xi) of the data sample

    Returns
    -------
    hypothesis_matrix: sparse matrix (N_values, k_values)
        the matrix form of the predicted values for the given X
    """
    hypothesis_matrix = model@X.T # result in a k by N matrix
    return hypothesis_matrix.T