File Exchange

image thumbnail

Modal Assurance Criterion (MAC)

version (2.1 KB) by Mohammad Farshchin
This function is to compute the Modal Assurance Criterion (MAC) between mode shapes


Updated 23 Sep 2015

View License

This function is to compute and plot Modal Assurance Criterion (MAC) matrix between identified mode shapes.

Cite As

Mohammad Farshchin (2020). Modal Assurance Criterion (MAC) (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (25)

Mohammad Farshchin

A copy of this code is available on Github @:
Please feel free to copy, modify or contribute.

The MAC equation mAc= (abs(Phi1'*Phi2))^2/((Phi1'*Phi1)*(Phi2'*Phi2))
in your function practically gives the right answer but theoretically, it should read the following:

mAc= (abs(Phi1.'*conj(Phi2)))^2/((Phi1.'*conj(Phi1))*(Phi2.'*conj(Phi2)))

MatLAB transpose of a complex-valued array is not only a transpose but also complex conjugate. What I meant is Phi1' is actually not only transpose of Phi1 but also its complex conjugate.

tuan tran

It looks good.
How can we calculate crossMAC?


There is basically no instruction to go along with this, so good luck figuring out what to do and what goes where. There's one example, but so deconstructed and without context that it does not matter. If the author is still active, I highly recommend he add some sort of tutorial - or at least a proper explanation - to this file so that people who want to use it know what they are doing.

Da Cao


mati ullah

How can we calculate MAC between damaged and undamaged structures mode shapes?

Wentao Zhao

Mohammad Farshchin

Unzip all files to the same folder then run the code.

Gaia C

It doesn't work, the error is:
"Not enough input arguments.

Error in MAC (line 11)
for I=1:size(phi,2)"

Can you help me?

Bo Miao

Michal Golebiewski

Arun Sharma

How to get the modal shape matrix in Abaqus?

Mohammad Farshchin

There is a mat file in the zip file you download. This file contains the data.

Arun Sharma

Can someone provide a demo data as an example to learn and implement it?
Contact id:

Jasper Walden

smita kaloni

Mohammad Farshchin

Make sure that you save MAC.m and ModeShapes.mat in the same folder and set that folder as MATLAB working directory or add a path to it. Then: load ModeShapes.mat;MAC_Matrix=MAC(phi)

azade ch

it doesnot work, can u help me?

Nima Nazemi

Omid Khademhosseini


Very Useful.

Jiawei Liu

Convenient. Thanks.

qiong zou

Fabricio Ortiz

Thank's a lot!
It was very usefull during in course os structural dynamics.

Farhad Sedaghati

MATLAB Release Compatibility
Created with R2015b
Compatible with any release
Platform Compatibility
Windows macOS Linux