solving is magic function

How to write a function that will take a matrix m as an input and return true only if M is a magic square

Answers (2)

Azzi Abdelmalek
Azzi Abdelmalek on 17 Oct 2013

0 votes

Create a magic matrix with magic function then use isequal to compare your two matrices

2 Comments

Walter Roberson
Walter Roberson on 17 Oct 2013
Edited: Walter Roberson on 17 Oct 2013
Note: as magic() generates randomly, you will need to generate all of the magic squares of that size and compare each of them to the original matrix.
Ok, I ignore it

Sign in to comment.

Walter Roberson
Walter Roberson on 17 Oct 2013

0 votes

One test: calculate the mean of the numbers in the array. If it is not an integer, the array cannot be a magic square.
Another test: an array which is square and has all elements identical is a magic square.
A third test: magic squares are always two dimensional, not vectors and not three or more dimensions.

1 Comment

Azzi Abdelmalek
Azzi Abdelmalek on 18 Oct 2013
Edited: Azzi Abdelmalek on 18 Oct 2013
sum(A,1) ans sum(A,2) are equal and constant

Sign in to comment.

Categories

Tags

Asked:

on 17 Oct 2013

Commented:

on 18 Oct 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!