
C++ - Jak dostat z řídké matice čtvercovou část?
Ahoj všichni!
Potřeboval bych dostat z řídké matice zadané souřadnicovým formátem dostat čtvercovou část "vpravo dole" pro výpočet Schurova doplňku. Nevím ale jak na to bez toho, že bych převáděl matici do hustého formátu - ten je pro mě dost nevýhodný, protože matice budou pak v reálu hodně velké.
Příklad uložení matice:
int order_of_matrix = 4
int row_coords[] = {1,1,2,3,3,4};
int col_coords[] = {1,3,3,3,4,4};
int vals[] = {1,2,3,4,5,6};
Mi popisuje matici
|1 0 2 0|
|0 0 3 0|
|0 0 4 5|
|0 0 0 6|
Příklad extrakce prvků:
int schur_complement_size = 1
|6|
int schur_complement_size = 2
|4 5|
|0 6|
int schur_complement_size = 3
|0 3 0|
|0 4 5|
|0 0 6|
int schur_complement_size = 4
|1 0 2 0|
|0 0 3 0|
|0 0 4 5|
|0 0 0 6|
Moc díky za veškeré rady,
Katsu
Vybereš jenom ty prvky, jejich řádkový i sloupcový index odpovídá zvolené velikosti.