2
在MATLAB,如果我有兩個3×3矩陣A和B,並希望B的最後兩列複製到前兩個A的,我會用下面的語法:Armadillo C++:如何使用另一個矩陣中的多個元素修改矩陣的多個數組元素,特別是在多維數據集結構中?
A(:,1:2) = B(:,2:3)
我試圖完成在C++中使用Armadillo的相同動作,專門用於多維數據集結構。在犰狳,如果我有兩個立方體A和B具有九個片(每片是一個3×3矩陣),I假設我會使用以下方法來執行相同的列元素的更新:
A(span(0,2),span(0,1),span(i)) = B(span(0,2),span(1,2),span(i))
其中「i」的只是切片索引。該語法基於Armadillo語法指南。
該代碼編譯沒有錯誤並運行;多維數據集切片只是未被更新。我在這裏使用了正確的Armadillo語法,這是執行這些操作的最有效方法嗎?
你的代碼實際上並不編譯。您正在使用錯誤的[subcube](http://arma.sourceforge.net/docs.html#subcube)語法。用'span(i,i)'或'span :: all'替換'i'。第一種形式更新一個切片。第二種形式更新所有切片。 – hbrerkere
@hbrerkere啊,這很有道理,謝謝。代碼正在編譯,因爲我已經在問題中指定了'span(i)'而不是'i'。我會更新這個問題來提一提。 –
語法看起來現在。根據我的測試,這工作。它將相關部分從'B'複製到'A'。你確定你的代碼中沒有其他地方存在bug嗎? – hbrerkere