Matlab和Python 画矩阵的非零元分布图

前言

一般我们在进行数值计算时,经常会遇到求解如下等式的问题:
A x = b Ax=b Ax=b
其中矩阵A往往非常稀疏(即其中有约60%以上的元素都是零)且成“块”“带”状分布。有时我们想看一下其非零元的分布,就可以借助Matlab或者Python的函数实现。

Matlab画矩阵的非零元分布图

程序

%Matlab code
clear
clc

load("A.mat")
spy(A)

结果

Matlab

Python画矩阵的非零元分布图

程序

import numpy as np
import matplotlib.pyplot as plt


def read_file(file_name):
	f = open(file_name)
	lines = f.readlines()
	K = np.zeros((len(lines), len(lines)))
	i = 0
	for line in lines:
		line = line.strip().split('\t')
		#K[i, :] = np.array(list(map(int, line)))
		K[i] = list(map(int, line))
		i+=1
	return K


if __name__ == '__main__':
	file_name = "A.txt"
	K = read_file(file_name)
	plt.matshow(K)
	plt.show()
	

结果

Python

总结

基本都是一行代码的事:

Matlab :spy(A)
Python : matshow(K)

在此亦是回顾一下Python读取文本数据的代码。以上代码和矩阵数据以及结果图都可以去我的GitHub上下载。同时目录下也有自己学习Python过程中总结的一些程序,都有注释,欢迎大家一起学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值