Matlab - Cuadro magico en matlab

 
Vista:

Cuadro magico en matlab

Publicado por Juan Perez (6 intervenciones) el 08/10/2017 20:02:25
Hola necesito crear un algoritmo en matlab para crear cualquier cuadrado magico en matlab pero sin la funcion magic, alguien me puede ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Cuadro magico en matlab

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 10/11/2017 17:34:50
este es el código que usa Matlab para la función puedes revisarlo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function M=magica(n)
n = floor(real(double(n(1))));
if mod(n,2) == 1
   % Odd order 
   M = oddOrderMagicSquare(n);
elseif mod(n,4) == 0
   % Doubly even order.
   % Doubly even order.
   J = fix(mod(1:n,4)/2);
   K = bsxfun(@eq,J',J);
   M = bsxfun(@plus,(1:n:(n*n))',0:n-1);
   M(K) = n*n+1 - M(K);
else
   % Singly even order.
   p = n/2;   %p is odd.
   M = oddOrderMagicSquare(p);
   M = [M M+2*p^2; M+3*p^2 M+p^2];
   if n == 2
      return
   end
   i = (1:p)';
   k = (n-2)/4;
   j = [1:k (n-k+2):n];
   M([i; i+p],j) = M([i+p; i],j);
   i = k+1;
   j = [1 i];
   M([i; i+p],j) = M([i+p; i],j);
end
function M = oddOrderMagicSquare(n)
p = 1:n;
M = n*mod(bsxfun(@plus,p',p-(n+3)/2),n) + mod(bsxfun(@plus,p',2*p-2),n) + 1;


y aquí puedes encontrar un poco sobre como puedes hacer cuadrados mágicos https://soymatematicas.com/cuadrados-magicos/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar