Matrix Datei-Ausgabe
-
Gude Leutz,
Leider bin ich total planlos im Gebiet der Ein- und Ausgabe und stehe vor dem Problem das ich eine Matrix in eine Datei ausgeben muss. Deshalb wende ich mich mit meinem Problem an euch.
Meine Matrix ist vom Typ vector<vector<double>> dessen Zeilen und Spalten bekannt sind.
Vielen tausend Dank für jeden Beitrag/ Tipp/ Rat uvm

Gruß Schickano
-
std::ofstream
Falls du Hilfe erwartest, komme uns mit etwas Code entgegen.
-
Cool, Danke!
Ich werde versuchen mir was sinnvolles zusammenzubasteln.
Sobald ich fertig bin hol ich mir Euren Segen

-
const int n = 4; double val_1[n] = {1,2,3,4}; double val_2[n] = {5,6,7,8}; vector<double> v1; vector<double> v2; vector<vector<double>> matrix; v1.insert(v1.begin(), val_1, val_1 + n); v2.insert(v2.begin(), val_2, val_2 + n); matrix.push_back(v1); matrix.push_back(v2); ofstream outfile ("new.txt"); for(int i = 0; i < matrix.size(); ++i){ size = matrix.at(0).size(); outfile.write (&matrix.at(0),size); } outfile.close();Das habe ich zusammengebraut. Bei der write Zeile bekomme ich ein Problem weil er ein char erwartet. Wie könnte ich das lösen?
-
Die write Funktion erwartet Bytes(chars) die sie schreiben kann, versuche es mit dem <<-Operator, der kann doubles verwalten. Dann müsstest du allerdings noch eine Schleife reinschachteln, da der <<-Operator keine Vector Direkt abspeichern kann und du die Komponenten der Matrix einzeln speichern musst.
EDIT: Es sieht auch komisch aus wenn du 2 verschiedene Arrays benutzt
Verwenden entweder c++ "direkt":double Matrix[n][m]oder den vector
vector<vector<double>> Matrixaber nicht erst das erste und dann in den vecotr umfuchteln;)
-
Kannst du mir einen Rat geben wie ich z.b. folgende Zahlen
120 3 5 7 8 2 8 2
in einem Vector oder Matrix eingebe ohne 8 mal die pushback()-Methode aufzurufen.
-
hmm, ok ich sehe was du meinst, leider kenn ich da nix eleganteres als das was du gemacht hast.
Ich persönlich würde den vector nicht benutzen und [][] benutzen.
Allerdings bekomm ich bestimmt haue dafür, weil die meisten hier vector-fans sind
in etwa so:
for(int i=0; i<n; ++i) { for(int j=0; j<m; ++j) { ofile<<Matrix[i][j]<<' '; } ofile<<'\n'; }und die Initializierung dann so
//2x4 Matrix double Matrix[2][4] = {0,1,2,3 \ 4,5,6,7};
-
Super

Vielen Dank JaykopX.So einem simplen Code hätte ich nicht erwartet
