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

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

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

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

Matlab中的Cell

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

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

cell的讀取

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

cell和mat矩陣的轉換

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

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

如果是兩層以上的cell可以自己寫循環(huán)依次將數(shù)據(jù)讀出來,存入另一個數(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

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

用法:

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

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

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

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

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

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

當使用 [] 自動計算維度大小時,顯式指定的維度必須均勻劃分為輸入矩陣 numel(A) 中的元素數(shù)目。

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

permute

置換數(shù)組維度

B = permute(A,dimorder)

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

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

permute函數(shù)只是調換數(shù)據(jù)維度的順序,比如我們要從某個數(shù)據(jù)中拿到某兩個維度之間的矩陣,我們可以先用這個函數(shù)將這兩個維度先調到外面,方便我們取。

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

Please use HDF reader for matlab v7.3 files

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

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

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

因為matlab中數(shù)據(jù)默認保存成double數(shù)據(jù),所以如果轉換到其他語言時,要注意到這一點,并且提前強制轉換。

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

問題在于下表越界,因為從matlab中獲得的鄰接矩陣記錄鄰居時,下標從1開始,而python中默認下標從0開始。

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

總結

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

相關文章

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

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

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

    python字符串基礎操作詳解

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

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

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

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

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

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

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

    基于python if 判斷選擇結構的實例詳解

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

    Python random模塊使用詳解

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

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

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

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

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

    python簡單實現(xiàn)矩陣的乘,加,轉置和逆運算示例

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

最新評論

西峡县| 井冈山市| 铜陵市| 水富县| 玉田县| 浠水县| 华坪县| 竹山县| 清镇市| 桦川县| 耒阳市| 宽甸| 信阳市| 平遥县| 盐山县| 宝山区| 宜都市| 新平| 乌拉特中旗| 霍邱县| 康定县| 西充县| 平遥县| 来宾市| 宝山区| 拉萨市| 图们市| 讷河市| 鹤岗市| 翁源县| 新野县| 浙江省| 芮城县| 东明县| 韶山市| 朝阳区| 中宁县| 南部县| 德兴市| 沙河市| 遵义市|