matlab矩阵上三角求和,matlab矩阵按行求和

首页 > 大全 > 作者:YD1662022-12-23 17:11:23

本文中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)

(本文完)

matlab矩阵上三角求和,matlab矩阵按行求和(1)

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.