python实现类似于Matlab中的magic函数

参考这篇文章的代码封装了一个类似Matlab中的magic函数,用来生成魔方矩阵。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np

def magic(n):
    row,col=0,n//2
    magic=[]
    for i in range(n):
        magic.append([0]*n)
    magic[row][col]=1
    for i in range(2,n*n+1):
        r,l=(row-1+n)%n,(col+1)%n
        if(magic[r][l]==0):
            row,col=r,l
        else:
            row=(row+1)%n
        magic[row][col]=i
    marray = np.array(magic)
    return marray

if __name__ == ‘__main__‘:
    y = magic(7)
    print y
    print type(y)

  

测试结果

Matlab

magic(7)

Matlab

时间: 2024-10-13 23:27:43

python实现类似于Matlab中的magic函数的相关文章

自己写的一个类似于jQuery中的toggle函数

这是HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>公共测试页</title> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script ty

MATLAB中的常用函数

MATLAB中的常用函数 1. 特殊变量与常数 主题词 意义 主题词 意义 ans 计算结果的变量名 computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位 inputname 输入参数名 NaN 非数 nargin 输入参数个数 nargout 输出参数的数目 pi 圆周率 nargoutchk 有效的输出参数数目 realmax 最大正浮点数 realmin 最小正浮点数 varargin   实际输入的参量 varargout 实际返回的参量     2.

【Matlab】Matlab中的plot函数及legend函数解析 持续更新...

Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y) plot(X1,Y1,...) plot(X1,Y1,LineSpec,...) plot(...,'PropertyName',PropertyValue,...) plot(axes_handle,...) h = plot(...) hlines = plot('v6',...) 描述 plot(Y)如果Y是m×n的数组,以1:m为X横坐标,Y中的每一列元素为Y坐标,绘制n条曲线:如果Y是n×1或者1×n的向量

Matlab中的eig函数和eigs函数的异同点

Matlab中的eig()函数和eigs()函数的异同点 1.相同点 都可以求解矩阵的特征值和特征向量 2.不同点 eig函数主要是给出矩阵的特征值和特征向量 eigs函数主要是通过迭代法来求解矩阵特征值和特征向量 3.实例 >> A = [1,2,3;4,5,6;7,8,9] A = 1 2 3 4 5 6 7 8 9 >> [V,D] = eig(A) V = -0.2320 -0.7858 0.4082 -0.5253 -0.0868 -0.8165 -0.8187 0.61

[python] 字典和列表中的pop()函数

在字典和列表中,pop()函数都是删除特定元素,并将删除的元素返回给指定的变量或丢弃 一.字典元素删除 1.1 clear() 语法:dict.clear() 1 x = {'a':1, 'b':2, 'c':3} 2 m= x.clear() 3 print(x,m) 4 #输出 5 {} None 说明:删除所有的元素 1.2 pop() 语法:dict.pop(key,[value]) 说明:删除指定键及对应的值,如果在字典中不存在键及value,则返回pop()中指定的key对应的val

python 迭代器 itertools模块中常用工具函数

迭代器 itertools模块中常用工具函数,提供了接近二十个迭代器工具函数. 原文地址:https://www.cnblogs.com/bcyczhhb/p/11809842.html

Python初探——sklearn库中数据预处理函数fit_transform()和transform()的区别

敲<Python机器学习及实践>上的code的时候,对于数据预处理中涉及到的fit_transform()函数和transform()函数之间的区别很模糊,查阅了很多资料,这里整理一下: # 从sklearn.preprocessing导入StandardScaler from sklearn.preprocessing import StandardScaler # 标准化数据,保证每个维度的特征数据方差为1,均值为0,使得预测结果不会被某些维度过大的特征值而主导 ss = Standard

MATLAB 中的randn函数

matlab函数 randn:产生正态分布的随机数或矩阵的函数 randn:产生均值为0,方差σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数. 用法: Y = randn(n):返回一个n*n的随机项的矩阵.如果n不是个数量,将返回错误信息. Y = randn(m,n) 或 Y = randn([m n]):返回一个m*n的随机项矩阵. Y = randn(m,n,p,...) 或 Y = randn([m n p...]):产生随机数组. Y = randn(size(A))

Matlab中min/max函数的误解

1.C= min(a):返回最小值:我原来以为如果a是行向量,min(a)返回a本身,因为我记得min(a,1)是按列找最小,这是默认的.doc min发现,只要a是向量,那么返回最小值. 2.C= min(a,[],dim),dim分别取1,2和我理解的一样. 3.C= min(A,B),如果AB是同维矩阵,返回两者较小者.如果B是表量,那么返回A中每个数和B比较的结果,那个小返回那个. >> a = magic(3) a = 8 1 6 3 5 7 4 9 2 >> b = r