日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

MATLAB 数组作为 Python 变量

發(fā)布時(shí)間:2023/12/29 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB 数组作为 Python 变量 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

在 Python 中創(chuàng)建 MATLAB 數(shù)組

Python?中的?MATLAB?數(shù)組屬性和方法

Python?中的多維?MATLAB?數(shù)組

在?Python?中對(duì)?MATLAB?數(shù)組進(jìn)行索引

在?Python?中對(duì)?MATLAB?數(shù)組進(jìn)行切片

在?Python?中重構(gòu)?MATLAB?數(shù)組


????????matlab Python? 包提供數(shù)組類(lèi)以將 MATLAB? 數(shù)值類(lèi)型的數(shù)組表示為 Python 變量,以便 MATLAB 數(shù)組可以在 Python 和 MATLAB 之間傳遞。

在 Python 中創(chuàng)建 MATLAB 數(shù)組

????????可以通過(guò)從 matlab Python 包中調(diào)用構(gòu)造函數(shù)(例如 matlab.double、matlab.int32)在 Python 會(huì)話中創(chuàng)建 MATLAB 數(shù)值數(shù)組。構(gòu)造函數(shù)的名稱(chēng)表示 MATLAB 數(shù)值類(lèi)型。

????????可以在 Python 中使用自定義類(lèi)型初始化 MATLAB 雙精度數(shù)組。要使用該自定義類(lèi)型進(jìn)行初始化,它必須繼承自 Python 抽象基類(lèi) collections.Sequence。

????????可以將 MATLAB 數(shù)組作為輸入?yún)?shù)傳遞給由用于 Python 的 MATLAB 引擎 API 調(diào)用的函數(shù)。當(dāng) MATLAB 函數(shù)將數(shù)值數(shù)組作為輸出參數(shù)返回時(shí),引擎會(huì)將該數(shù)組返回到 Python。

????????可以使用包含數(shù)字的可選 initializer 輸入?yún)?shù)初始化數(shù)組。initializer 必須是 Python 序列類(lèi)型,例如 list、tuple 或其他序列類(lèi)型。可選的 size 輸入?yún)?shù)根據(jù)序列來(lái)設(shè)置數(shù)組大小。

????????可以通過(guò)指定 initializer 包含多個(gè)數(shù)字序列或通過(guò)指定 size 為多維來(lái)創(chuàng)建多維數(shù)組。通過(guò)將可選的 is_complex 輸入?yún)?shù)設(shè)置為 True,可以創(chuàng)建復(fù)數(shù) MATLAB 數(shù)組。matlab 包提供了下表中列出的 MATLAB 數(shù)組構(gòu)造函數(shù)。

matlab?類(lèi)

Python 中的構(gòu)造函數(shù)調(diào)用

matlab.double

matlab.double(initializer=None, size=None, is_complex=False)

matlab.single

matlab.single(initializer=None, size=None, is_complex=False)

matlab.int8

matlab.int8(initializer=None, size=None, is_complex=False)

matlab.int16

matlab.int16(initializer=None, size=None, is_complex=False)

matlab.int32

matlab.int32(initializer=None, size=None, is_complex=False)

matlab.int64[a]

matlab.int64(initializer=None, size=None, is_complex=False)

matlab.uint8

matlab.uint8(initializer=None, size=None, is_complex=False)

matlab.uint16

matlab.uint16(initializer=None, size=None, is_complex=False)

matlab.uint32

matlab.uint32(initializer=None, size=None, is_complex=False)

matlab.uint64[b]

matlab.uint64(initializer=None, size=None, is_complex=False)

matlab.logical

matlab.logical(initializer=None, size=None)[c]

matlab.object

沒(méi)有構(gòu)造函數(shù)。當(dāng)函數(shù)返回的是 MATLAB 對(duì)象的句柄或值對(duì)象時(shí),引擎會(huì)將 matlab.object 返回給 Python。

[a]?In Python 2.7 on Windows,?matlab.int64?is converted to?int32?in MATLAB. Also, MATLAB cannot return an?int64?array to Python.

[b]?In Python 2.7 on Windows,?matlab.uint64?is converted to?uint32?in MATLAB. Also, MATLAB cannot return a?uint64?array to Python.

[c]?Logicals cannot be made into an array of complex numbers.

????????當(dāng)創(chuàng)建具有 N 個(gè)元素的數(shù)組時(shí),數(shù)組大小為 1×N,因?yàn)樗?MATLAB 數(shù)組。

import matlab.engine A = matlab.int8([1,2,3,4,5]) print(A.size)(1, 5)

????????使用包含五個(gè)數(shù)字的 Python list 進(jìn)行初始化。MATLAB 數(shù)組大小為 1×5,由 tuple (1,5) 指示。

Python?中的?MATLAB?數(shù)組屬性和方法

????????所有使用 matlab 包構(gòu)造函數(shù)創(chuàng)建的 MATLAB 數(shù)組都具有下表中列出的屬性和方法。

屬性或方法

用途

size

數(shù)組大小返回為 tuple

reshape(size)

按照序列 size 的指定重構(gòu)數(shù)組

Python?中的多維?MATLAB?數(shù)組

????????在 Python 中,可以創(chuàng)建任何數(shù)值類(lèi)型的多維 MATLAB 數(shù)組。使用兩個(gè) Python list 變量創(chuàng)建一個(gè) 2×5 MATLAB 雙精度數(shù)組。

import matlab.engine A = matlab.double([[1,2,3,4,5], [6,7,8,9,10]]) print(A)[[1.0,2.0,3.0,4.0,5.0],[6.0,7.0,8.0,9.0,10.0]]

????????A 的 size 屬性顯示它是 2×5 數(shù)組。

print(A.size)(2, 5)

在?Python?中對(duì)?MATLAB?數(shù)組進(jìn)行索引

????????就像可以對(duì) Python list 和 tuple 變量進(jìn)行索引一樣,也可以對(duì) MATLAB 數(shù)組進(jìn)行索引。

import matlab.engine A = matlab.int8([1,2,3,4,5]) print(A[0])[1,2,3,4,5]

????????MATLAB 數(shù)組的大小為 (1,5);因此,A[0] 是 [1,2,3,4,5]。對(duì)該數(shù)組進(jìn)行索引會(huì)得到 3。

print(A[0][2])3

????????Python 索引是從 0 開(kāi)始的。當(dāng)在 Python 會(huì)話中訪問(wèn) MATLAB 數(shù)組的元素時(shí),請(qǐng)使用從 0 開(kāi)始的索引。

????????對(duì)多維 MATLAB 數(shù)組進(jìn)行索引。

A = matlab.double([[1,2,3,4,5], [6,7,8,9,10]]) print(A[1][2])8.0

在?Python?中對(duì)?MATLAB?數(shù)組進(jìn)行切片

????????可以像對(duì) Python list 和 tuple 變量進(jìn)行切片一樣,對(duì) MATLAB 數(shù)組進(jìn)行切片。

import matlab.engine A = matlab.int8([1,2,3,4,5]) print(A[0][1:4])[2,3,4]

????????可以將數(shù)據(jù)分配到一個(gè)切片。以下代碼顯示從 Python list 到一個(gè)數(shù)組切片的分配。

A = matlab.double([[1,2,3,4],[5,6,7,8]]); A[0] = [10,20,30,40] print(A)[[10.0,20.0,30.0,40.0],[5.0,6.0,7.0,8.0]]

????????可以分配來(lái)自另一個(gè) MATLAB 數(shù)組或來(lái)自包含數(shù)字的任何 Python 可迭代對(duì)象的數(shù)據(jù)。

????????可以為分配指定切片,如下所示。

A = matlab.int8([1,2,3,4,5,6,7,8]); A[0][2:4] = [30,40] A[0][6:8] = [70,80] print(A)[[1,2,30,40,5,6,70,80]]

注意:

????????對(duì) MATLAB 數(shù)組進(jìn)行切片與對(duì) Python?list?進(jìn)行切片在行為上有所不同。對(duì) MATLAB 數(shù)組進(jìn)行切片將返回視圖而不是淺拷貝。

????????假定 MATLAB 數(shù)組和 Python?list?具有相同的值,分配切片也會(huì)產(chǎn)生不同結(jié)果,如以下代碼所示。

A = matlab.int32([[1,2],[3,4],[5,6]]) L = [[1,2],[3,4],[5,6]] A[0] = A[0][::-1] L[0] = L[0][::-1] print(A)[[2,2],[3,4],[5,6]]print(L)[[2, 1], [3, 4], [5, 6]]

在?Python?中重構(gòu)?MATLAB?數(shù)組

????????可以使用 reshape 方法在 Python 中重構(gòu) MATLAB 數(shù)組。輸入?yún)?shù) size 必須是保留元素?cái)?shù)量的一個(gè)序列。使用 reshape 將 1×9 MATLAB 數(shù)組更改為 3×3。

import matlab.engine A = matlab.int8([1,2,3,4,5,6,7,8,9]) A.reshape((3,3)) print(A)[[1,4,7],[2,5,8],[3,6,9]]

總結(jié)

以上是生活随笔為你收集整理的MATLAB 数组作为 Python 变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。