strassen方法求任意行列數的矩陣乘法

2021-07-29 18:31:54 字數 876 閱讀 5605

根據之前的文章strassen方法求矩陣乘法,我們只需要在使用strassen方法前對矩陣進行處理,對任意行列數的矩陣mxn,在最後一行或最後一列後面新增0,使行數和列數補齊為2的冪。

修改之前的**如下:

void matrixmultipy(int* a, int arow, int acol, int* b, int brow, int bcol, int* c)

int an = 1;

while (an < acol)

datatype* aa = new datatype[am*an];

memset(aa, 0, sizeof(datatype)*am*an);

submat a(aa, am, an);

for (int i = 0; i < arow; i++)

}int bm = 1;

while (bm < brow)

int bn = 1;

while (bn < bcol)

datatype* bb = new datatype[bm*bn];

memset(bb, 0, sizeof(datatype)*bm*bn);

submat b(bb, bm, bn);

for (int i = 0; i < brow; i++)

}datatype* cc = new datatype[am*bn];

memset(cc, 0, sizeof(datatype)*am*bn);

submat c(cc, am, bn);

matrixmultiplyab(a,b,c);

for (int i = 0; i < arow; i++)

}}

python3讀取csv檔案任意行列。

enumerate 函式用於將乙個可遍歷的資料物件 如列表 元組或字串 組合為乙個索引序列,同時列出資料和資料下標 filename d data.csv with open filename,r encoding utf 8 as f read f.readlines for index,info...

任意行列矩陣順時針螺旋輸出

比如5行6列的矩陣 要求輸出結果為 1,2,3,4,5,6,12,18,24,30,29,28,27,26,25,19,13,7,8,9,10,11,17,23,22,21,20,14,15,16 主要思路 寫乙個方法剝完外面一圈後,矩陣剩下的資料成為乙個新的矩陣,再次遞迴呼叫此方法,直到剝完 實現...

求行列式的值

肯定要用遞迴,肯定要用陣列 用乙個二維陣列來表示這個矩陣,但是引數傳遞的時候我們不能確定這個矩陣的行數列數,所以編譯器會報錯 所以定義乙個一維陣列來模擬這個行列式,而一維陣列作為引數傳遞給函式時又不用指定大小,符合我們的需要。同時我們定義乙個結構體來表示這個余子式 typedef struct yu...