百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python 和 MatLAB 矩阵/向量操作和语法对照一览表

off999 2024-10-14 12:14 35 浏览 0 评论

本文中python 操作矩阵和向量用 Numpy 工具包,因此首先要导入 numpy;Matlab正常启动即可,矩阵和向量操作是其内置的核心工具。

import numpy as np

创建向量


MATLAB

PYTHON

行向量:

size(1,n)

A = [1 2 3]

A = np.array([1,2,3]).reshape(1,3)

列向量:

size(n,1)

A = [1;2;3]

A = np.array([1,2,3]).reshape(3,1)

1维数组:

size(n,)

不能像size(n,) 这样做

A = np.array([1,2,3)

从j到n,步长为k的整数赋值

A = j:k:n

A = np.arange(j,n+1,k)

k个点的线性插值向量

A = linspace(1,5,k)

A = np.linspace(1,5,k)

创建矩阵


MATLAB

PYTHON

一般矩阵

A = [1 2;3 4]

A = np.array([[1,2],[3,4]])

2*2 的 0 矩阵

A = zeros(2,2)

A = np.zeros((2,2))

2*2 的 1 矩阵

A = ones(2,2)

A = np.ones((2,2))

2*2 的单位矩阵

A = eyes(2,3)

A = np.eys(2)

对角矩阵

A = diag([1 2 3])

A = np.diag([1,2,3])

均匀随机数矩阵

A = rand(2,2)

A = np.random.rand(2,2)

正态随机数矩阵

A = randn(2,2)

A = np.random.randn(2,2)

创建稀疏矩阵

A = sparse(2,2)

A(1,2) = 4

A(2,2) = 1

from scipy.sparse import coo_matrix


A = coo_matrix(([4,1],([0,1],[1,1])),

shape=(2,2))

创建三角矩阵

A = [1 2 3 NaN;

4 5 6 7;

NaN 8 9 0]


spdiags(A',[-1 0 1], 4, 4)

import sp.sparse as sp

diagonals = [[4, 5, 6, 7], [1, 2, 3], [8, 9, 10]]


sp.diags(diagonals, [0, -1, 2]).toarray()




向量与矩阵的操作


MATLAB

PYTHON

矩阵装置

A.'

A.T

复共轭矩阵装置

A‘

A.conj()

两个矩阵横向拼接,即行连接

A = [[1 2] [1 2]]

或者

A = horzcat([1 2], [1 2])

B = np.array([1, 2])

A = np.hstack((B, B))

两个矩阵纵向拼接,即列连接

A = [[1 2]; [1 2]]

或者

A = vertcat([1 2], [1 2])

B = np.array([1, 2])

A = np.vstack((B, B))

矩阵行列重构

10个元素组成的一维矩阵转换为5行2列,


A = reshape(1:10, 5, 2)

A = A.reshape(5, 2)

矩阵转换为向量

A(:)

A = A.flatten()

矩阵左右翻转

fliplr(A)

np.fliplr(A)

矩阵上下翻转

flipud(A)

np.flipdu(A)

重复矩阵(行重复3次,列重复4次)

repmat(A, 3, 4)

np.tile(A, (4, 3))

给向量或矩阵预先分配内存

x = rand(10)

y = zeros(size(x, 1), size(x, 2))

(可以是N/A这样的数据类型)

x = np.random.rand(3, 3)

y = np.empty_like(x)

# new dims

y = np.empty((2, 3))

作用于数据集/矩阵/向量的函数

f = @(x) x.^2

g = @(x, y) x + 2 + y.^2

x = 1:10

y = 2:11

f(x)

g(x, y)

def f(x):

return x**2

def g(x, y):

return x + 2 + y**2

x = np.arange(1, 10, 1)

y = np.arange(2, 11, 1)

f(x)

g(x, y)




访问向量或矩阵的元素


MATLAB

PYTHON

访问某个元素

A(2,2)

A[1,1]

访问指定的行

A(1:4,:)

A[0:4,:]

访问指定的列

A(:,1:4)

A[:,0:4]

删除行

A([1 2 4],:)

A[[0,1,3],:]

矩阵的对角线

diag(A)

np.diag(A)

获得矩阵的维数

[nrow ncol] = size(A)

nrow, ncol = np.shape(A)




矩阵的数学运算


MATLAB

PYTHON

求点积

dot(A,B)

np.dot(A,B) 或者 A @ B

矩阵的乘法

A * B

A @ B

占位矩阵的乘法,

(即其中一个矩阵是空的)

x = np.array([1, 2]).reshape(2, 1)

A = np.array(([1, 2], [3, 4]))

y = np.empty_like(x)

np.matmul(A, x, y)

元素的智能乘法

(elementwise multiplication)

A.*B

A * B


矩阵的幂运算

A^2

np.linalg.matrix_power(A, 2)

矩阵元素的幂运算

A.^2

A ** 2

求逆矩阵

inv(A)

或者

A^(-1)

np.linalg.inv(A)

矩阵的决定值

det(A)

np.linalg.det(A)

矩阵的特征值和特征向量

[vec, val] = eig(A)

val, vec = np.linalg.eig(A)

欧几里德范数

norm(A)

np.linalg.norm(A)

线性方程求解

(Ax = b,其中A为n*n矩阵)

A\b

(Ax = b,其中A为n*n矩阵)


np.linalg.solve(A, b)

最小二乘法求解

(Ax = b,其中A为m*n矩阵)

A\b

(Ax = b,其中A为m*n矩阵)


np.linalg.lstsq(A, b)




求和、最大值和最小值


MATLAB

PYTHON

求每一列的sum/max/min

sum(A, 1)

max(A, [], 1)

min(A, [], 1)

sum(A, 0)

np.amax(A, 0)

np.amin(A, 0)

求每一行的sum/max/min

sum(A, 2)

max(A, [], 2)

min(A, [], 2)

sum(A, 1)

np.amax(A, 1)

np.amin(A, 1)

整个矩阵的sum/max/min

sum(A(:))

max(A(:))

min(A(:))

np.sum(A)

np.amax(A)

np.amin(A)

每一行的sum/max/min的累计值

cumsum(A, 1)

cummax(A, 1)

cummin(A, 1)

np.cumsum(A, 0)

np.maximum.accumulate(A, 0)

np.minimum.accumulate(A, 0)

每一列的sum/max/min的累计值

cumsum(A, 2)

cummax(A, 2)

cummin(A, 2)

np.cumsum(A, 1)

np.maximum.accumulate(A, 1)

np.minimum.accumulate(A, 1)




编程语法


MATLAB

PYTHON

注释行

% This is a comment

# This is a comment

注释块

%{

Comment block

%}

# Block

# comment

# following PEP8

For 循环

for i = 1:N

% 做什么

end

for i in range(n):

# 做什么

while 循环

while i <= N

% 做什么

end

while i <= N:

# 做什么

if

if i <= N

% 做什么

end

if i <= N:

#做什么

if / else

if i <= N

% 做A件事

else

% 做其他事

end

if i <= N:

% 做A件事

else

% 做其他事

end

打印文本和变量

x = 10

fprintf('x = %d \n', x)

x = 10

print(f'x = {x}')

匿名函数

f = @(x) x^2

f = lambda x: x**2

函数

function out = f(x)

out = x^2

end

def f(x):

return x**2

元组

t = {1 2.0 "test"}

t{1}

t = (1, 2.0, "test")

t[0]

命名元组/匿名结构

m.x = 1

m.y = 2

m.x

from collections import namedtuple

mdef = namedtuple('m', 'x y')

m = mdef(1, 2)

m.x

函数调用

a = 2.0

f = @(x) a + x

f(1.0)

a = 2.0

def f(x):

return a + x

f(1.0)

函数占位修改

def f(x):

x **=2

return

x = np.random.rand(10)

f(x)

(本文完)

相关推荐

可以和虚拟人物聊天的软件(可以和虚拟人物聊天的软件,用QQ直接登陆)

在火星App中与多个虚拟人物对话,其实是一个相当有趣且简单的体验。首先,你需要确保已经下载并安装了火星App,并打开它。接着,在App的界面中,你可以找到虚拟人物的选项。点击进去后,你会看到多个虚拟人...

三年片在线观看免费大全电影

第一位:极限影音这是中国第一家免费电影网站。虽然域名有点难记,但它在很多免费电影网站上都有很好的服务。这是个好名声。你可以在这里得到最快和最新的免费电影。第二位:007免费在线电影这个网站是一个很好的...

旧版qq(旧版qq豌豆荚)

手机QQ软件好多更新都不好用,可能是刚开始不稳定。建议用回旧版本先。你可以打开QQ主页,然后按软件QQ下载,里面有个链接是旧版本下载的,点开下载你以前的版本就可以了    一、检查qq版本是否过于陈旧...

湖南卫视直播在线观看高清电视台

1.解锁手机,找到桌面上的央视频APP,打开。2.进入主页面后,点击页面底部的“电视”选项。3.进入电视页面后,默认显示的是CCTV的频道,上方切换到“卫视”频道。4.在打开的卫视图标中我们就...

rar解压软件官网(rar解压器官方免费下载)
rar解压软件官网(rar解压器官方免费下载)

winrar是解压软件。你没有安装winrar,所以打不开用winrar加压的软件。在网上下载个安装后就能用了。去安装解压软件啊,网上到处都有,直接在网上搜索就可以,软件下好后安装,将其设置在右键中,以后右键单击就可以解压相应winrar文...

2026-01-23 09:43 off999

音频编辑转换器(音频编辑转换器怎么用)

高转低音频转换器接法是指将一种信号转换成另一种信号的装置。信号是信息存在的形式或载体。在自动化仪表设备和自动控制系统中,常将一种信号转换成另一种与标准量或参考量比较后的信号,以便将两类仪表联接起来,因...

安卓游戏中心下载安装(安卓游戏中心app)

格来云游戏、Nibiru游戏城、快游戏、蟋蟀游戏大厅、石头游戏。以上app资源丰富,且支持外设连接,更新及时。1、格来云游戏:格来云游戏是动视云科技开发的APP,格来云不依赖玩家的电脑性能和储存,连...

正当防卫3手游下载(正当防卫三正版下载)

通过QQ浏览器,或者应用商店下载即可。华为手机上下载《正当防卫4》(JustCause4)的方法如下:方法一:使用华为应用市场(华为AppGallery)1.打开华为应用市场。2.在搜索框中输...

可以免费下载所有歌曲的网站

一、http://51Ape.Com一个免费提供无损音乐下载的网站,专注于Ape音乐、Flac音乐以及Wav等各类高品质无损音乐的免费下载,是目前国内比较好的免费音乐下载网站。二、91听歌网提供无损音...

龙珠斗士z手游版下载(龙珠斗士z手游版下载ios)

召唤神龙,实现愿望。龙珠z斗士中只要集齐七颗龙珠就可以召唤出神龙,来实现自己的愿望。在漫画动画各类手游中都是这样首先进入游戏主界面,点击“斗士”按钮进入选角界面,在选角界面中选择你要使用的角色并确认...

可以手动插人物的游戏手游(可以手动插人物的游戏手游app)

在手游对局中,左上角有一个开关,可切换手动开火和自动开火,切换到自动开火后,准星描到敌方人物即会自动开火。当然,并不是所有模式中都有自动开火开关,是特定的一些模式有该开关,比如挑战模式、刀战模式等。另...

手机铃声最好听的歌(手机铃声最好听的歌曲有哪些)

Everythingisnotwhatitseems超喜欢这首的,绝对不会撞见跟你铃声一样的Push艾薇儿的新歌,很好听,也很适合做铃声Foreverandalways钢琴版副歌部分很好听布兰妮的3也...

千千静听官网(十大免费音乐网站)

千千静听起源于2002年,千千静听是一款完全免费的音乐播放软件,集播放、音效、转换、歌词等众多功能于一身。其小巧精致、操作简捷、功能强大的特点,深得用户喜爱,被网友评为中国十大优秀软件之一,并且成为目...

成品ppt网站国外(免费生成ppt的网站)

免费ppt成品怎么下载?不确定您要下载哪类的ppt。如果想要下载初中语文课件的话,免费成品ppt可以通过无忧无虑中学语文网下载,上面按照年级,教材版本分门别类的课件资源,教案参考,还有相应的练习题,甚...

免费的连连看游戏大全(连连看游戏app推荐)

在4399小游戏里,点击儿童小游戏,里面就有不及时的连连看。《连连看》只要将相同的两张牌用三根以内的直线连在一起消除即可。连连看,又称对对卡,是指图案配对的一种益智游戏,有多种形式,如卡片游戏、电子...

取消回复欢迎 发表评论: