필터 지우기
필터 지우기

how to build a magic matrix manually of even n*n matrix?

조회 수: 4 (최근 30일)
dareen
dareen 2024년 3월 25일
편집: the cyclist 2024년 3월 26일
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
dareen
dareen 2024년 3월 25일
편집: dareen 2024년 3월 25일
i think i found the pattern i will try to implement it should have tried on paper from the start

댓글을 달려면 로그인하십시오.

채택된 답변

John D'Errico
John D'Errico 2024년 3월 25일
@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:

추가 답변 (2개)

the cyclist
the cyclist 2024년 3월 25일
Yours is an algorithm question, not a MATLAB question.
You can find an algorithm for both singly-even and doubly-even magic squares here.

the cyclist
the cyclist 2024년 3월 26일
편집: the cyclist 2024년 3월 26일
The method that MATLAB uses to build magic squares is evident if you enter
type magic
at the command line.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by