Source code for monalisa.trajectory._traj_line_reshape
"""Port of src/traj123/bmTraj_lineReshape.m."""
from monalisa._mat import msize, reshape
from monalisa.trajectory._traj_n_line import traj_n_line
[docs]
def traj_line_reshape(t, data=None, nargout=1):
"""Reshape a trajectory (and optionally its data) to line format ``[imDim, N, nLine]``."""
imDim = msize(t, 1)
nLine, N, isN_integer = traj_n_line(t, nargout=3)
if not isN_integer:
raise ValueError("The size of traj is not convertible to [imDim, N, nLine]")
out = reshape(t, [imDim, N, nLine])
if nargout <= 1:
return out
if data is None:
raise ValueError("traj_line_reshape: data is required for a second output")
return out, reshape(data, [msize(data, 1), N, nLine])