python 生成 Toeplitz 矩阵_numpy 生成拓普利兹矩阵-程序员宅基地

技术标签: 学术概念  

python 生成 Toeplitz 矩阵


首先导入必要的依赖文件

import numpy as np
from scipy.linalg import toeplitz

明确要实现的功能

Toeplitz 矩阵定义:链接
给定一个单数项的数列,如 [ − 2 , − 1 , 0 , 1 , 2. ] \left[-2,-1,0,1,2.\right] [21012.]
以中心项 0 0 0 为起点开始构造矩阵:
[ 0 − 1 − 2 1 0 − 1 2 1 0 ] \begin{bmatrix} 0&-1&-2 \\ 1&0&-1 \\ 2&1&0 \end{bmatrix} 012101210
事实上,这是 Circulant 矩阵。在 Toeplize 的基础上,Circulant 进一步的要求是每一个行向量,是前一个行向量的循环右移一个元素。


通用代码

m = 4              # 中心项索引
N = 2 * m + 1      # 总共的项数

d = np.arange(1, N+1)
d2 = d[::-1]

t = toeplitz(d[m:], d2[m:])
print(t)

输出:

d = [1 2 3 4 5 6 7 8 9]
t = 
[[5 4 3 2 1]
 [6 5 4 3 2]
 [7 6 5 4 3]
 [8 7 6 5 4]
 [9 8 7 6 5]]
[Finished in 0.5s]

写成函数

def gen_toeplitz(m, array):
'''
m:     中心项索引
array: 数列
'''
	# N = 2 * m + 1       # 总共的项数
	list2 = array[::-1] # 翻转

	t_matrix = toeplitz(array[m:], list2[m:])
	
	return t_matrix 

太简单了,做个小笔记留存,以后万一用到。
调用一下,假设生成一个 5 × 5 5\times 5 5×5 的 Toeplitz 矩阵,即 m + 1 = 5 m+1=5 m+1=5

if __name__ == '__main__':
	m = 5-1
	array = np.arange(2 * m + 1)
	T_m = gen_toeplitz(m, array)
	print(array)
	print(T_m)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_23947237/article/details/84591292

智能推荐

python学习笔记(四)【随机数、运算符(算术运算、比较运算、赋值运算、逻辑运算、位运算、成员运算、身份运算)】_产生随机数并进行比较 用python-程序员宅基地

文章浏览阅读305次。主要内容1.随机数2.比较运算符3.赋值运算符4.逻辑运算符5.位运算符6.成员运算符7.身份运算符一、随机数注:iter:可迭代对象,即列表、元组、range()、str、dict(返回的是值,而不是键)1.random.choice(iter):从可迭代对象中挑选一个元素2.random.randrange(start,end,step):star:从start..._产生随机数并进行比较 用python

快速解决ERROR: Exception: Traceback (most recent call last)的办法-程序员宅基地

文章浏览阅读9.5k次,点赞5次,收藏6次。在新电脑上使用cmd的pip安装python第三方库selenium时候,遇到了ERROR: Exception: Traceback (most recent call last)的问题,搞了好久,最后解决了。解决方法非常简单,就是开手机热点。原本是用的家里千兆网线,cmd下载速度非常低,而且出错之前就是进度条卡顿不动,然后报错。最后开了wifi后解决了问题,而且速度比有线网要快些。..._error: exception: traceback (most recent call last):

NSURLSession VS NSURLConnection_nsurlconnection vs nsurlsession-程序员宅基地

文章浏览阅读275次。NSURLSession VS NSURLConnection NSURLSession可以看做是NSURLConnection的进化版,其对NSURLConnection的改进点有: * 根据每个Session做配置(http header,Cache,Cookie,protocal,Credential),不再在整个App层面共享配置.* 支持网络操作的取消和断点续传* 改进了_nsurlconnection vs nsurlsession

基于单片机的医院呼叫系统设计_基于单片机的呼叫系统的设计开题报告-程序员宅基地

文章浏览阅读2k次。word完整版可点击如下下载>>>>>>>>基于单片机的医院呼叫系统设计.rar-单片机文档类资源-CSDN下载1、资源内容:毕业设计lun-wenword版10000字+;开题报告,任务书2、学习目标:快速更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/Holidaylive/85046773目 录摘要-------------------------------------._基于单片机的呼叫系统的设计开题报告

CTF---MISC详解_ctf misc-程序员宅基地

文章浏览阅读1.4k次,点赞5次,收藏31次。Misc 是英文 Miscellaneous 的前四个字母,杂项、混合体、大杂烩的意思。Recon(信息搜集)主要介绍一些获取信息的渠道和一些利用百度、谷歌等搜索引擎的技巧Encode(编码转换)主要介绍在 CTF 比赛中一些常见的编码形式以及转换的技巧和常见方式Forensic && Stego(数字取证 && 隐写分析)隐写取证是 Misc 中最为重要的一块,包括文件分析、隐写、内存镜像分析和流量抓包分析等等,涉及巧妙的编码、隐藏数据、层层嵌套的文件中的文件,灵活利用搜索引擎获取所需_ctf misc

Ubuntu安装Nvidia显卡驱动-补充问题-程序员宅基地

文章浏览阅读352次,点赞9次,收藏6次。解决问题:系统分辨率突然下降、重装显卡驱动报错

随便推点

模式识别或智能视频处理常用的视频库素材库_模式识别 视频数据下载-程序员宅基地

文章浏览阅读2.4k次。【本文转自】http://www.cnblogs.com/rosekin/archive/2013/03/28/2986080.html智能视频分析常用的视频库:http://media.xiph.org/video/derf/ftp://motinas.elec.qmul.ac.uk/http://media.xiph.org/video/derf/http://www.cv_模式识别 视频数据下载

Latex编号设置方法(持续更新中……)_label={[\arabic*]}-程序员宅基地

文章浏览阅读7.7k次,点赞4次,收藏4次。三种方式enumerate、itemize、description环境具体可以参考链接LaTeX 使用:itemize,enumerate,description 用法缩进设置这一部分可以参考itemize, enumerate枚举,编号使用及编号样式设计..._label={[\arabic*]}

linux扫描磁盘变化命令,Linux quotacheck命令:扫描文件系统并建立Quota记录文件-程序员宅基地

文章浏览阅读688次。其实,磁盘配额(Quota)就是通过分析整个文件系统中每个用户和群组拥有的文件总数和总容量,再将这些数据记录在文件系统中的最顶层目录中,然后在此记录文件中使用各个用户和群组的配额限制值去规范磁盘使用量的。因此,建立 Quota 的记录文件是非常有必要的。扫描文件系统(必须含有挂载参数 usrquota 和 grpquota)并建立 Quota 记录文件,可以使用quotacheck 命令。此命令的..._quotacheck

上门服务小程序源码 理疗,足疗,美容SAP上门服务小程序源码_足疗店小程序源码-程序员宅基地

文章浏览阅读458次。运行环境:Nginx 1.20+PHP7.1+MySQL 5.6 通过HBuilder X编译小程序APP版本。_足疗店小程序源码

iOS 自动布局 关于 '控件拉伸' 或者 '内容压缩'的控制_ios masonry 两个label水平排列,后一个label把前一个压缩了-程序员宅基地

文章浏览阅读1.3k次。在开发过程中,经常碰到如图所示的需求:并排着三个label_0, label_1, label_2..(从左至右),三个label的内容长度都是未知,三个label的之间的距离都是固定值。正常操作:我们从左至右依次添加label。设定距离左端的距离,居中,最后一个label_2的时候,再多设置一个距离父视图右边的距离。。这样,约束会飘红,有冲突。而且_ios masonry 两个label水平排列,后一个label把前一个压缩了

在Apple Silicon Macs上如何安装Rosetta 2?非本机Intel x86应用如何在M1上运行?_如何在intel mac 上安装运行任意ios应用-程序员宅基地

文章浏览阅读1.4k次。如何在M1上运行较早的非本机Intel x86应用?新购买的Apple Silicon Mac,比如M1 MacBook Pro,MacBook AIr或Mac mini等机子上,如果想要运行较早的非本机Intel x86应用,则需要Rosetta 2技术。但是有些Mac上却并未安装Rosetta 2,因此,如果要运行这些非本机Intel x86应用,则需要自己操作将Rosetta 2安装到Apple Silicon Mac上。下方为您分享在Apple Silicon Macs上安装Rosetta 2的方法_如何在intel mac 上安装运行任意ios应用

推荐文章

热门文章

相关标签