Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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

Předmět Autor Datum
Vybereš jenom ty prvky, jejich řádkový i sloupcový index odpovídá zvolené velikosti. poslední
Wikan 25.10.2015 13:40
Wikan

Zpět do poradny Odpovědět na původní otázku Nahoru