我的問題可能是微不足道的。我在 MatLab 中有一個大的 3D 矩陣(m x n x k 元素),想要提取所有對角線切片并將它們存盤在另一個 3D 陣列中。為了更好的表達,我附上了一張圖片。虛線是我正在尋找的對角線切片。

uj5u.com熱心網友回復:
給定一個m x n x k陣列,a使用以下方法將切片提取到一個元胞陣列中:
idx = repmat(reshape((0 : k - 1), 1, 1,[]) (1 : n), [m, 1, 1]);
result = accumarray(idx(:), a(:), [], @(x){reshape(x, m, 1,[])});
切片的尺寸是[m x 1 x y]哪里y的范圍是從1到min(n,k)。
對于舊的 MATLAB 版本,請使用以下內容(bsxfun而不是隱式擴展):
idx = repmat(bsxfun(@plus, reshape((0 : k - 1), 1, 1,[]), (1 : n)), [m, 1, 1]);
result = accumarray(idx(:), a(:), [], @(x){reshape(x, m, 1,[])});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/371813.html
上一篇:如何在Tkinter中獲取輸入,然后將其傳遞給函式以獲取輸出
下一篇:MATLAB中視頻壓縮的并行計算
