how to build a magic matrix manually of even n*n matrix?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
dareen
am 25 Mär. 2024
Bearbeitet: the cyclist
am 26 Mär. 2024
i have written an alogorithm magic of odd order yet could not think of one for even order i i am starting to see a pattern for 4 by 4 yet going into 6 by 6 it does seem that i need to take other things into account hints would be appreciated
function res=magicodd(n)
if nargin<1
input("enter a matrix of size 3 or bigger ")
end
if n<3
error("enter a matrix of at least size 3")
end
if mod(n, 2) == 0
error('Order of the magic square must be odd.');
end
row = 1;
res=zeros(n);
col=ceil(n/2);
for num = 1:n^2
res(row,col)=num;
new_row = mod(row - 2, n) + 1;
new_col = mod(col, n) + 1;
% Move up and right
if res(new_row, new_col) == 0
row = new_row;
col = new_col;
else
% Move down
row = mod(row, n) + 1;
end
end
end
1 Kommentar
Akzeptierte Antwort
John D'Errico
am 25 Mär. 2024
@the cyclist is correct, that this is purely an algorithm question. But you did write code.
Anyway, I'd start here, if I were you:
Weitere Antworten (2)
the cyclist
am 26 Mär. 2024
Bearbeitet: the cyclist
am 26 Mär. 2024
The method that MATLAB uses to build magic squares is evident if you enter
type magic
at the command line.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!