最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Matlab中的mat數(shù)據(jù)轉(zhuǎn)成python中使用的npy數(shù)據(jù)遇到的坑及解決

 更新時(shí)間:2022年12月15日 08:37:28   作者:faithfulzl  
這篇文章主要介紹了Matlab中的mat數(shù)據(jù)轉(zhuǎn)成python中使用的npy數(shù)據(jù)遇到的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

最近做的工作涉及將matlab中的處理好的mat數(shù)據(jù)轉(zhuǎn)換成npy數(shù)據(jù),送入到網(wǎng)絡(luò)中學(xué)習(xí)。在處理數(shù)據(jù)時(shí)遇到的一些問題總結(jié)如下。

Matlab中的Cell

cell數(shù)組的數(shù)組(指的是兩層cell)不能使用cell2mat函數(shù)

為了解決這個(gè)問題,涉及matlab中元組數(shù)據(jù)的讀取和保存。

cell的讀取

cell的{}是指向cell的內(nèi)容,而cell的()是指向cell的位置。

cell和mat矩陣的轉(zhuǎn)換

單個(gè)的cell轉(zhuǎn)換成mat可以直接使用cell2mat函數(shù)。

cell2mat:將元胞數(shù)組成普通矩陣(要求cell元胞數(shù)組的所有內(nèi)容都必須為相同數(shù)據(jù)類型,可以為字符,會(huì)轉(zhuǎn)化為字符矩陣)

如果是兩層以上的cell可以自己寫循環(huán)依次將數(shù)據(jù)讀出來,存入另一個(gè)數(shù)據(jù)中。

for i=1:n_actions_train
? ? ?for j=1:n_num
? ? ? ? ?matrix_train(i,j,:,:,:)=train_fea{i}{j}; ?%train_fea是cell數(shù)據(jù)
? ? ?end ? ??
?end

Matlab中的reshape和permute

reshape

重構(gòu)函數(shù),將給定的數(shù)據(jù)重構(gòu)成我們需要的size的數(shù)據(jù)。

用法:

B = reshape(A,sz)
B = reshape(A,sz1,...,szN)

B = reshape(A,sz) 使用大小向量 sz 重構(gòu) A 以定義 size(B)。

例如,reshape(A,[2,3]) 將 A 重構(gòu)為一個(gè) 2×3 矩陣。

sz 必須至少包含 2 個(gè)元素,prod(sz) 必須與 numel(A) 相同。

% eg. 1: 將 1×10 向量重構(gòu)為 5×2 矩陣。
A = 1:10;
B = reshape(A,[5,2])

每個(gè)維度的大小,指定為具有最多一個(gè) [](可選)的兩個(gè)或以上的整數(shù)。必須至少指定 2 個(gè)維度大小,并且最多一個(gè)維度大小可以指定為 [],這樣會(huì)自動(dòng)計(jì)算該維度的大小以確保 numel(B) 與 numel(A) 相匹配。

當(dāng)使用 [] 自動(dòng)計(jì)算維度大小時(shí),顯式指定的維度必須均勻劃分為輸入矩陣 numel(A) 中的元素?cái)?shù)目。

對(duì)于第二個(gè)維度以上的維度,輸出 B 不反映大小為 1 的尾部維度。例如,reshape(A,3,2,1,1) 生成 3×2 矩陣。

permute

置換數(shù)組維度

B = permute(A,dimorder)

eg. 1 : 創(chuàng)建一個(gè) 3×4×2 數(shù)組并對(duì)其進(jìn)行置換,交換第一個(gè)維度和第三個(gè)維度,從而得到 2×4×3 數(shù)組.
A = rand(3,4,2)
B = permute(A,[3 2 1])

reshape和permute函數(shù)的區(qū)別主要在于reshape會(huì)改變數(shù)據(jù)的維度,但數(shù)據(jù)總量是不變的,只是按原來數(shù)據(jù)的行列組合變化到新的數(shù)據(jù)排列方式,其中每個(gè)維度的size都可能發(fā)生變化。

permute函數(shù)只是調(diào)換數(shù)據(jù)維度的順序,比如我們要從某個(gè)數(shù)據(jù)中拿到某兩個(gè)維度之間的矩陣,我們可以先用這個(gè)函數(shù)將這兩個(gè)維度先調(diào)到外面,方便我們?nèi) ?/p>

這個(gè)函數(shù)不會(huì)改變每個(gè)維度的size。

Please use HDF reader for matlab v7.3 files

matlab中對(duì)于較大打mat文件,都建議使用v7.3 來保存數(shù)據(jù),但是scipy包中的loadmat函數(shù)不能讀取這個(gè)版本的數(shù)據(jù),搜了一下問題,發(fā)現(xiàn)h5py包中的File函數(shù)可以讀取這個(gè)數(shù)據(jù),添加h5py后使用h5py.File()函數(shù)就可以讀取了。

IndexError: only integers, slices (:), ellipsis (...)……

經(jīng)檢查,錯(cuò)誤之處在索引處使用了浮點(diǎn)數(shù),把matlab中獲得的數(shù)據(jù)強(qiáng)制轉(zhuǎn)換成int型。

因?yàn)閙atlab中數(shù)據(jù)默認(rèn)保存成double數(shù)據(jù),所以如果轉(zhuǎn)換到其他語言時(shí),要注意到這一點(diǎn),并且提前強(qiáng)制轉(zhuǎn)換。

IndexError: index *** is out of bounds for axis 1 with size ***

問題在于下表越界,因?yàn)閺膍atlab中獲得的鄰接矩陣記錄鄰居時(shí),下標(biāo)從1開始,而python中默認(rèn)下標(biāo)從0開始。

值得注意的是matlab中下標(biāo)維度都是從1開始的,而且matlab中的矩陣讀取順序是列優(yōu)先的,其他語言比如python和C++都是行優(yōu)先的。所以數(shù)據(jù)遷移過去都需要先transpose。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)現(xiàn)嵌套列表平鋪的兩種方法

    python實(shí)現(xiàn)嵌套列表平鋪的兩種方法

    今天小編就為大家分享一篇python實(shí)現(xiàn)嵌套列表平鋪的兩種方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python字符串基礎(chǔ)操作詳解

    python字符串基礎(chǔ)操作詳解

    這篇文章主要為大家詳細(xì)介紹了python字符串基礎(chǔ)操作,,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • python GUI庫圖形界面開發(fā)之PyQt5窗口布局控件QStackedWidget詳細(xì)使用方法

    python GUI庫圖形界面開發(fā)之PyQt5窗口布局控件QStackedWidget詳細(xì)使用方法

    這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5窗口布局控件QStackedWidget詳細(xì)使用方法,需要的朋友可以參考下
    2020-02-02
  • Python?langchain?ReAct?使用范例詳解

    Python?langchain?ReAct?使用范例詳解

    這篇文章主要介紹了Python?langchain?ReAct?使用范例,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12
  • Python Json數(shù)據(jù)文件操作原理解析

    Python Json數(shù)據(jù)文件操作原理解析

    這篇文章主要介紹了Python Json數(shù)據(jù)文件操作原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 基于python if 判斷選擇結(jié)構(gòu)的實(shí)例詳解

    基于python if 判斷選擇結(jié)構(gòu)的實(shí)例詳解

    代碼執(zhí)行結(jié)構(gòu)為順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。這篇文章主要介紹了python if 判斷選擇結(jié)構(gòu)的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Python random模塊使用詳解

    Python random模塊使用詳解

    random模塊是Python標(biāo)準(zhǔn)庫的一部分,主要用于生成偽隨機(jī)數(shù),它提供了眾多函數(shù),如random.randint、random.choice等,用于生成不同類型的隨機(jī)數(shù)據(jù),適用于各種需要隨機(jī)性的場(chǎng)景,此模塊生成的雖是偽隨機(jī)數(shù),但對(duì)大多數(shù)應(yīng)用已足夠,此外,還介紹了secrets模塊,適合處理敏感信息
    2024-10-10
  • Python 圖形繪制詳細(xì)代碼(二)

    Python 圖形繪制詳細(xì)代碼(二)

    這篇文章主要介紹了Python 圖形繪制詳細(xì)代碼,本文接著上文介紹介紹條形圖的畫法,同樣附有詳細(xì)的代碼,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2021-12-12
  • Python?Pandas中的分組聚合操作詳解

    Python?Pandas中的分組聚合操作詳解

    Pandas是Python中用于數(shù)據(jù)分析的重要工具,提供了豐富的數(shù)據(jù)操作方法,本文將介紹?Pandas?中的數(shù)據(jù)分組方法以及不同的聚合操作,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-11-11
  • python簡(jiǎn)單實(shí)現(xiàn)矩陣的乘,加,轉(zhuǎn)置和逆運(yùn)算示例

    python簡(jiǎn)單實(shí)現(xiàn)矩陣的乘,加,轉(zhuǎn)置和逆運(yùn)算示例

    這篇文章主要介紹了python簡(jiǎn)單實(shí)現(xiàn)矩陣的乘,加,轉(zhuǎn)置和逆運(yùn)算,結(jié)合實(shí)例形式分析了Python針對(duì)矩陣的乘,加,轉(zhuǎn)置和求逆等運(yùn)算相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07

最新評(píng)論

崇义县| 新营市| 日喀则市| 庆阳市| 黄平县| 曲周县| 桃园市| 托克托县| 平度市| 红原县| 耒阳市| 措勤县| 阳泉市| 嘉义市| 民丰县| 慈溪市| 葵青区| 泽库县| 仁寿县| 大安市| 磐石市| 随州市| 江西省| 莆田市| 德保县| 桐庐县| 靖州| 新宁县| 乌拉特前旗| 德江县| 东平县| 牡丹江市| 普定县| 思茅市| 邹平县| 廊坊市| 桂阳县| 云阳县| 喜德县| 竹山县| 阳西县|