-
Fototrend

Ú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!
- sziku69: Fűzzük össze a szavakat :)
- Gitáros topic
- Spórolós topik
- Samsung Galaxy S23 Ultra - non plus ultra
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Nintendo Switch 2
- Tesla topik
- LEGO klub
- Elektromos autók - motorok
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- Inno3D GeForce RTX 4070 Ti X3 12G - Karácsonyi akcióban!
- Redragon Kumara K552 RGB Brown Switch magyar billentyűzet
- Lenovo Thinkpad P1 Gen 6 - i9-13980HX, 32GB, 2TB SSD, 16" WQUXGA (3840 2400), RTX 4090
- 15.gen! Intel Core Ultra 9 285K +16-32GB DDR5 RAM +hűtött VRM-es Z890 lap! GAR/SZÁMLA (a Te nevedre)
- OP AudioCodes C450HD Ip Phones - Szines kijelzős - Teams/ Zoom telefon - Új dobozos
- Asus Zenbook 13 laptop Oled kijelző!
- Dell Latitude 5440 14" Touchscreen i5-1235U 16GB 256GB 1 év garancia
- BESZÁMÍTÁS! LENOVO ThinkPad P15 Gen2 - i7 11800H 32GB DDR4 1TB SSD Quadro A2000 4GB WIN11
- GYÖNYÖRŰ iPhone 12 64GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3858
- 183 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5090
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


