国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

股票量化軟件:赫茲量化中矩陣實(shí)用工具

2023-08-11 10:37 作者:大牛啊呢  | 我要投稿


從矩陣中刪除多列

嘗試刪除單列時(shí)就是這種情況,但若有較大的矩陣包含大量我們想要一次性刪除的列,為此,我們需要執(zhí)行一些棘手的操作,避免誤刪所需的列,并避免嘗試訪問超界的數(shù)值, 基本上都是為了安全地刪除列。

新矩陣的列數(shù)/大小要等于總列數(shù)減去我們要?jiǎng)h除的列數(shù),每列的行數(shù)保持不變(與舊矩陣相同)。

我們要做的第一件事是遍歷我們要?jiǎng)h除的所有選定列,以及舊矩陣中的所有可用列,如果要?jiǎng)h除這些列,我們會(huì)將該列中的所有值設(shè)置為零。 這是一個(gè)明智的操作,可以最終得到一個(gè)干凈的操作。

vector zeros(mat.Rows()); zeros.Fill(0); for(ulong i=0; i<size; i++) for(ulong j=0; j<mat.Cols(); j++) { if(cols[i] == j) mat.Col(zeros,j); }

我們要做的最后一件事是再次遍歷矩陣兩次,并檢查所有填充零值的列,并將這些列逐個(gè)刪除。

vector column_vector; for(ulong A=0; A<mat.Cols(); A++) for(ulong i=0; i<mat.Cols(); i++) { column_vector = mat.Col(i); if(column_vector.Sum()==0) MatrixRemoveCol(mat,i); }

注意到循環(huán)兩次了嗎? 它們非常重要,因?yàn)榫仃囋趧h除每列后其大小都會(huì)調(diào)整,因此需再次循環(huán),故再次返回檢查我們是否跳過所需列非常必要。

下面是該函數(shù)的完整代碼;

voidCMatrixutils::MatrixRemoveMultCols(matrix &mat,int &cols[]) { ulong size = (int)ArraySize(cols); if(size > mat.Cols()) { Print(__FUNCTION__," Columns to remove can't be more than the available columns"); return; } vector zeros(mat.Rows()); zeros.Fill(0); for(ulong i=0; i<size; i++) for(ulong j=0; j<mat.Cols(); j++) { if(cols[i] == j) mat.Col(zeros,j); } //--- vector column_vector; for(ulong A=0; A<mat.Cols(); A++) for(ulong i=0; i<mat.Cols(); i++) { column_vector = mat.Col(i); if(column_vector.Sum()==0) MatrixRemoveCol(mat,i); } }

我們看看這個(gè)函數(shù)的實(shí)際效果,我們嘗試刪除索引 0 和索引 2 處的列;Print("\nRemoving multiple columns"); int cols[2] = {0,2}; matrix_utils.MatrixRemoveMultCols(Matrix,cols); Print("Columns at 0,2 index removed New Matrix\n",Matrix);


股票量化軟件:赫茲量化中矩陣實(shí)用工具的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
宁南县| 贡山| 疏勒县| 普兰县| 长泰县| 邓州市| 福清市| 静乐县| 法库县| 西昌市| 夹江县| 江门市| 清流县| 资阳市| 玉山县| 富源县| 周宁县| 利川市| 佛学| 弥勒县| 四平市| 莱州市| 册亨县| 乌拉特前旗| 乐山市| 曲松县| 泰顺县| 保康县| 环江| 小金县| 织金县| 榆中县| 文化| 孝义市| 铁岭县| 和平区| 依兰县| 萍乡市| 遂昌县| 嘉峪关市| 工布江达县|