Source code for monalisa.array._is_block_shape
"""Port of src/arrayUtility/bmIsBlockShape.m."""
import numpy as np
from monalisa._mat import msize, numel, vec
[docs]
def is_block_shape(x, N_u):
"""True when ``size(x)`` equals ``[N_u, nCh]`` exactly (MATLAB ``isequal``)."""
N_u = vec(N_u)
nCh = numel(x) / np.prod(N_u)
myBlockSize = [*N_u, nCh]
return len(msize(x)) == len(myBlockSize) and all(
float(a) == float(b) for a, b in zip(msize(x), myBlockSize, strict=True)
)