嗨,我正試圖弄清楚如何從其他矩陣中創建一個矩陣。 我從某些計算中創建了3個矩陣,得到了3個形狀為(1200,3)的矩陣。1200代表資料集的行數。我想從每個矩陣(A、B、C)中提取的是,對于1200個資料點中的第一個,將它們按這樣的順序排列:
[[A[0][0] 。B[0][0], C[0][0]】。]
[A[0][1], B[0][1] 。C[0][1] ]。
[A[0][2], B[0][2] 。C[0][2]]。
這是我目前所寫的:
這是我目前所寫的。
def getRotationMatrix(acc_x_sample, acc_y_sample, acc_z_sample, mag_x_sample, mag_y_sample, mag_z_sample)。)
a = np.transpose(np.array([acc_x_sample,acc_y_sample,acc_z_sample]))
m = np.transpose(np.array([Mag_x_sample,Mag_y_sample,Mag_z_sample]))
B = np.cross(a,m) # (a x m)/span>
A = np.cross(B,a)
C = a
R =[]
for i in range(2)。
R.append(A[i],B[i],C[i])
return R
uj5u.com熱心網友回復:
這似乎是np.stack的作業,它可以用來做這個作業
result = np.stack([A, B, C], axis=2) 。
你可以根據你想合并它們的方式來改變軸的值。
uj5u.com熱心網友回復:
實作這一目的的一種方法如下:
np.c_[A,B,C].reshape((-1,3, 3) 。) transpose((0,2,1)
首先,將三個陣列堆疊(作為列),產生一個形狀為(1200,9)的陣列。然后,將其重塑為所需的形狀(1200,3,3),最后,將最后兩個維度轉置,使嵌套的二維陣列中的每一列來自A,B或C。
輸入示例:
A = np. array([[1,2, 3], [4,5,6]])
B = np. array([[-1,-2, -3], [-4,-5,-6]])
C = np. array([[11,12, 13], [14,15,16]])
np.c_[A,B,C].reshape((-1,3,3))。) transpose((0,2,1)
輸出:
array([[1, -1, 11]。
[2, -2, 12] 。
[3, -3, 13] ]。
[[ 4, -4, 14] 。
[5, -5, 15] 。
[6, -6, 16]])。)
uj5u.com熱心網友回復:
其他的答案可能已經足以讓你使其作業,但這里有一個小函式,可以做你想要的事情(據我所知):
def new_mat(*arrs)。
combined = np.concatenate([arrs])
return combined[:,0, :].T
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/328915.html
標籤:
上一篇:我如何根據一個if條件來"保持"一個迭代值,一旦滿足,繼續邏輯排序?
下一篇:如何從圖層轉置到軸的坐標
