Hirdetés
- ZIDOO médialejátszók
- Gaming notebook topik
- A klasszikus átnevezős trükkhöz nyúl az AMD a mobil Ryzeneknél
- LG LCD és LED TV-k
- Soundbar, soundplate, hangprojektor
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Milyen kompakt digitális fényképezőgépet?
- Házimozi belépő szinten
- Milyen széket vegyek?
- 3D nyomtatás
-
PROHARDVER!

Új hozzászólás Aktív témák
-
Sziasztok!
Lenne egy kérdésem. Írtam egy rövid programot C++ -ban, amivel .txt-ből beolvasok egy ritka mátrixot (sparse matrix), majd Matrix Market formátumban kiíratom. A probléma, hogy az output formátumban már kerekített értékek vannak. Feltételezem azért, mert a float adattípusnak túl hosszúak a számok (bár sztem abban is el kéne férniük...). Ezért a MATRIX elnevezésű DIM*DIM méretű tömböt, amibe beolvasom a mátrixot, double típusúra vettem, ebben az esetben azonban, bár gond nélkül lefordul a forráskód, futtatásnál egyszerűen nem történik semmi. Hibaüzenet sincs. Próbáltam feltárni, hogy hol hasal el, de olyan, mint ha a main függvénybe sem lépne be. Fogalmam sincs, hogy mi a baj. A forráskód alább - ha itt a MATRIX[DIM*DIM] előtt a float-ot double-re cserélem, akkor történik az anomália. Van tipp, hogy mi a gond?
#include <iostream>
#include <fstream>
#include <vector>using namespace std;
const int DIM = 385;
int main()
{
ifstream input("solveInput.txt");
ofstream output("Input_MM_precise.mtx");
float MATRIX[DIM*DIM];
unsigned int nonzeros = 0;
vector<int> nonzero_loc_row, nonzero_loc_col; //a nonzero element helye, sor és oszlop
vector<float> nonzero_val; //a nonzero element értéke
if (input.is_open())
{
for (int i = 0; i < DIM; i++)
{
for (int j = 0; j < DIM; j++)
{
input >> MATRIX[i*DIM + j];
if (MATRIX[i*DIM + j] != 0)
{
nonzeros++;
nonzero_loc_row.push_back(i);
nonzero_loc_col.push_back(j);
nonzero_val.push_back(MATRIX[i*DIM + j]);
}
}
}
}
else cout << "Nem talalhato a fajl\n";output << DIM << " " << DIM << " " << nonzeros << endl;
for (unsigned int i = 0; i < nonzeros; i++) output << nonzero_loc_row[i]+1 << " " << nonzero_loc_col[i]+1 << " " << nonzero_val[i] << endl; // +1 az 1-es alapú indexelés miattoutput.close();
cout << "\n" << "Vege" << endl;
}Példa az input mátrixból - csak egy random kimásolás, hogy látszódjon pár szám:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 2686.361 1943.819 119.4358 119.4358 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0.723588 2685.947 0 0 0 0 0 0 0 0 0 0 0 0 0 119.4358 119.4358 0
0 0.04446005 0 1325.068 583.3548 119.4358 119.4358 0 0 0 0 0 0 0
0 0.04446005 0 0.4402452 1679.329 0 0 0 0 0 0 0 0 0 0 0 0 0 172.5
0 0 0 0.09013559 0 1324.239 583.3548 119.4358 119.4358 0 0 0 0 0
0 0 0 0.09013559 0 0.4405208 1678.5 0 0 0 0 0 0 0 0 0 0 0 0 0 172
0 0 0 0 0 0.09019202 0 1323.41 583.3548 119.4358 119.4358 0 0 0 0
0 0 0 0 0 0.09019202 0 0.4407968 1677.672 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0.09024853 0 1322.581 583.3548 119.4358 119.4358 0
0 0 0 0 0 0 0 0.09024853 0 0.4410731 1676.844 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0.0903051 0 1321.752 583.3548 119.4358 119.4358
0 0 0 0 0 0 0 0 0 0.0903051 0 0.4413498 1676.016 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0.09036174 0 2681.386 583.3548 550.4225 0 0 stb.Végeredményben pedig ilyenek lesznek:
2 2 2686.36
2 3 1943.82
2 4 119.436
2 5 119.436
3 2 0.723588
3 3 2685.95
3 17 119.436
3 18 119.436
4 2 0.0444601
4 4 1325.07
4 5 583.355
4 6 119.436
4 7 119.436
5 2 0.0444601
stb.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Újszerű 10 magos Lenovo X13 Yoga G3 (12.gen Core I7 16Gb 512Gb SSD) laptopom eladó!
- Eladó Sony 55-210mm f/4.5-6.3 E OSS
- AORUS B450 ELITE 5800X3D 32GB DDR4 2 SSD RTX 4070S 12GB GAMER PC
- HP DL380p Gen8 12LFF - 4x4TB SAS 2x E5-2650L v2 96GB ECC 2x10Gbit
- Újszerű Samsung Galaxy TAB S9 5G 8GB/128GB - TAB S11 5G 12GB/128GB
- BESZÁMÍTÁS! MSI PRO X670-P R5 7600X 32GB DDR5 1TB SSD RX 6900 XT 16GB ZALMAN Z1 Plus Asus 1000W
- MacBook, Apple M1 / M2 kompatibilis dokkolók, DisplayLink 4K, USB-C, Type-C
- Samsung Galaxy S21 Ultra / 12/256GB / Kártyafüggetlen / 12Hó Garancia
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- Több db Nvidia Quadro M4000 8GB GDDR5 videokártya számlával
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



