首页
/
每日頭條
/
生活
/
python中如何把3個向量變成矩陣
python中如何把3個向量變成矩陣
更新时间:2024-11-10 12:45:28

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

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
已知正方形abcd求正方形面積
已知正方形abcd求正方形面積
如圖,已知四邊形ABCD為矩形,矩形ABCD和半圓O相切,切點為點E、點D,半圓O和BC相交于點F,連接DF,DF=8,求矩形ABCD的面積。這道題怎麼做呢?我們要求矩形ABCD的面積,就需要知道矩形的長和寬為多少。我們不妨假設AB=x,A...
2024-11-10
過年不理發有什麼講究
過年不理發有什麼講究
農村人過年,十分重視儀式,對老祖宗流傳下來需要慶祝的一些節日,都會認真籌備,絲毫不敢掉以輕心。這其中最重要的就是春節。農村人無論身處何方,總會在大年初一之前趕到家中與家人團聚。春節期間,又有許多需要大家遵守的習俗,其中有一句大家應該都聽過,...
2024-11-10
抹茶旦旦是什麼動物
抹茶旦旦是什麼動物
抹茶旦旦是什麼動物?抹茶旦旦是微信商城裡出的一款表情包,是一隻小鳄魚,因表情包外形可愛生動,被廣泛使用,随着互聯網的普及,越來越多的網絡熱梗出現在人們的視線中,抹茶旦旦小鳄魚便是其中一個,使用的人越來越多後就火了起來,我來為大家講解一下關于...
2024-11-10
生姜番茄冬瓜蘋果汁
生姜番茄冬瓜蘋果汁
生姜番茄冬瓜蘋果汁?,下面我們就來聊聊關于生姜番茄冬瓜蘋果汁?接下來我們就一起去了解一下吧!生姜番茄冬瓜蘋果汁黃瓜去皮切塊!蘋果去皮,去核,切塊!把黃瓜和蘋果放入榨汁機中!加入糖,飲用水!啟動榨汁模式!榨汁結束直接導入杯中就可以喝了!,
2024-11-10
工勤崗位是事業編制嗎
工勤崗位是事業編制嗎
事業單位作為行政機關的一種補充,其主要隻能就是為社會提供公益服務,對其人員的管理也是按照編制進行的,事業單位的崗位編制主要有管理崗位編制、專業技術崗位編制、工勤崗位編制,前兩者的身份屬于幹部,在一定的條件下可以互相進行交流,後者的身份屬于工...
2024-11-10
Copyright 2023-2024 - www.tftnews.com All Rights Reserved