簡體   English   中英

從matlab進行scipy轉換,錯誤:數組的維數必須相同

[英]scipy convert from matlab ,error: arrays must have same number of dimensions

我在MATLAB中有以下代碼:

ext = [lat(end, :); lat; lat(1, :)];
lat = [ext(:, end) ext ext(:, 1)];

我試圖在SciPy中做到這一點:

ext = sc.vstack([[lat[-1,:]], [lat], [lat[0,:]]])
lat = sc.vstack([[ext[:]], [ext], [ext[:,0]]])

但是它給了我錯誤:

ValueError:數組必須具有相同數量的維

和:

返回_nx.concatenate(map(atleast_2d,tup),0)->(在/ usr / lib / pymodules中...這是vstack函數的定義)

我要去哪里錯了?

您在ext垂直堆疊,在lat水平堆疊。

嘗試:

ext = sc.vstack([lat[-1,:], lat, lat[0,:]])
lat = sc.hstack([ext[:,-1], ext, ext[:,0]])

編輯:

上面的代碼僅在lat最初是矩陣而不是數組的情況下才有效。 如果不是這種情況,則可以通過lat = sc.matrix(lat)進行轉換。 還要注意,我消除了hstackvstack參數中的多余方括號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM