Main Content


Determine if geometric transformation is similarity transformation



TF = isSimilarity(tform) determines whether or not the affine transformation specified by tform is a similarity transformation. A similarity transformation includes only rotation, translation, isotropic scaling, and reflection. A similarity transformation does not modify the shape of an input object. Straight lines remain straight, and parallel lines remain parallel.


collapse all

Create an affine2d object that defines a pure translation.

A = [ 1  0  0
      0  1  0
     40 40  1 ];

tform = affine2d(A)
tform = 

  affine2d with properties:

                 T: [3x3 double]
    Dimensionality: 2

Check if transformation is a similarity transformation.

tf = isSimilarity(tform)
tf =


Create an affine3d object that defines a different scale factor in each dimension.

Sx = 1.2;
Sy = 1.6;
Sz = 2.4;
tform = affine3d([Sx 0 0 0; 0 Sy 0 0; 0 0 Sz 0; 0 0 0 1])
tform = 

  affine3d with properties:

                 T: [4x4 double]
    Dimensionality: 3

Check if the transformation is a similarity transformation.

TF = isSimilarity(tform)
TF =


Input Arguments

collapse all

Geometric transformation, specified as an affine2d or affine3d geometric transformation object.

Output Arguments

collapse all

Geometric transformation is similarity transformation, returned as true or false.


isSimilarity returns True if the transformation includes reflection. Some toolbox functions, such as imregister , support only non-reflective similarity. Other functions, such as fitgeotrans, support reflective similarity.

Data Types: logical

Version History

Introduced in R2013a