ismatrix checks if an object is a non-empty 1D or 2D matrix or array

## Syntax

    tf = ismatrix(x)

## Arguments

x

  scalar,vector, matrix, hypermatrix, list, array of structures or of cells

tf

  a boolean

## Description

`ismatrix(`x`)` returns `%T` (true) if `x` is a scalar (single component), or a vector or a matrix or array with one or 2 dimensions.

- An hypermatrix that would be a matrix after reordering its dimensions is considered as a matrix.
- To test that `x` is not an hypermatrix or an hyperarray -- whatever are the sizes of its dimensions --, use simply `ndims(x)<3`.
- `ismatrix([])` returns false.

## Examples

    ismatrix(ones(10,5))
    ismatrix(1)
    ismatrix(["s" "t" "u"; "t" "s" "u"])
    ismatrix(rand(2,1,3)) //because of singleton
    ismatrix(rand(2,2,3)) //hypermatrix
    s = struct();
    ismatrix(s) // Empty structure
    clear s
    s(1,2).a = 3;
    s(1,3).b = %z;
    ismatrix(s) // Row array of structures
    clear s
    s(2,1).a = "w";
    s(3,1).b = %t;
    iscolumn(s) // Column array of structures
    clear s
    s(1,2).a = -2;
    s(3,1).b = %pi;
    ismatrix(s) // 2D not-square array of structures
    clear s
    s(2,1,2).a = 3;
    s(1,1,2).b = "test";
    ismatrix(s) // 3D array of structures (with a singleton dim)
    clear s
    s(1,1,2).a = 3;
    s(1,1,3).b = "test";
    ismatrix(s) // 3D array of structures (with 2 singleton dims)
    clear s
    s(2,2,2).a = %f;
    s(1,2,1).b = list(%e, %s);
    ismatrix(s) // 3D (cubic) array of structures

## See also

- isscalar
- isrow
- iscolumn
- issquare
- isempty
- ndims

## History

5.5.0 Function ismatrix introduced.