tft每日頭條

 > 生活

 > python中如何把3個向量變成矩陣

python中如何把3個向量變成矩陣

生活 更新时间:2024-11-22 18:23:14

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

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)

(本文完)

python中如何把3個向量變成矩陣(Python和MatLAB)1

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved