|
Hallo Winfried, erst mal Danke, für Deine Bemühungen! Zum Problem: Wie man in C/C++ eine MMA-Datei (ASCCII Datei) formatiert und erzeugt ist nicht das Problem, sondern wie man in MMA Daten in eine benutzerformatierte ASCCII Datei exportiert. Wie ursprünglich in der meiner Anfrage erwähnt, legt das Inputfile "Dat_10_15.txt" das Ausgabe Format fest. Welches ich dann noch einmal spezifiziert habe. Dieses Format soll dann so von MMA erzeugt werden. Sieht so aus, als mußte ich mir in (perl, C/C++, oder etc.) einen Parser basteln, der mir aus dem "Table"-Format von MMA mein gewünschtes Format erzeugt. Schwierig dabei, wird das Loswerden des Exponentialformats, ganz zuschweigen vom erhöhten Arbeitsaufwand und einer erhöhten Fehleranfälligkeit. Ich bin der Meinung, MMA sollte eine so simple Geschichte, wie einen benutzerformatierten ASCCII-Export bewältigen können und suche den Fehler lieber bei mir. Hoffentlich kann mir da noch jemand weiterhelfen. Mit freundlichen Grüßen [André El-Ama] -----Original Message----- From: owner-demug@XXXXXXX.ch [mailto:owner-demug@XXXXXXX.ch]On Behalf Of Winfried Bilgic Sent: Saturday, January 24, 2004 2:24 PM To: Andre El-Ama Cc: Mathematica User Group Group Subject: Re: Exportproblem Hallo Andre, ich nutze auch Mma zur Weiterverarbeitung, allerdings mache ich das etwas anders... anbei die Codeschnipzel in C Denke das hilft, Viel Erfolg Winn ************************************* FILE *MmaFile; MmaFile=fopen("Datei.nb","w"); fprintf(MmaFile,"Remove[\x22Global`*\x22]\n"); fprintf(MmaFile,"Off[General::spell]\n"); fprintf(MmaFile,"Off[General::spell1]\n"); fprintf(MmaFile,"Off[Part::pspec]\n"); fprintf(MmaFile,"(*\tTimeSteps: %d\t*)\n",nsteps); fprintf(MmaFile,"EzListe%06d={",T); for(j=0;j<JE;j++) { fprintf(MmaFile,"{"); for(i=0;i<IE;i++) { if (i<IE-1) { fprintf(MmaFile,"%9.6f,",ez[i][j]); } else fprintf(MmaFile,"%9.6f",ez[i][j]); } fprintf(MmaFile,"}"); if (j<JE-1) fprintf(MmaFile,",\n"); } fprintf(MmaFile,"};\n"); fprintf(MmaFile,"g1=ListPlot3D[EzListe%06d,PlotRange %c[Rule] {-0.62, +0.62},Mesh %c[Rule] False, DisplayFunction %c[Rule] Identity]; \n",T,92,92,92); fprintf(MmaFile,"g2=ListContourPlot[EzListe%06d,PlotRange %c[Rule] {-0.62, +0.62},ContourShading %c[Rule] False, DisplayFunction %c[Rule] Identity];\n",T,92,92,92); fprintf(MmaFile,"Show[GraphicsArray[{g1,g2}],DisplayFunction %c[Rule] $DisplayFunction, PlotLabel %c[Rule] \x22Timestep %06d\x22, ImageSize %c[Rule]{720,300}];\n",92,92,T,92); fclose(MmaFile); ************************************* On 23.01.2004, at 18:56, Andre El-Ama wrote: > Hallo, > > Ich habe folgendes Problem in Mathematica 4.2 (Student) für Windows. > Ich hatte gern Daten aus einer ASCCII Datei eingelesen, mit MMA > bearbeitet > und im gleichen Format wieder abgespeichert. > Das Einlesen sowie die Berechnungen erfolgen ohne Probleme, das > Exportieren > im Einleseformat ist mir jedoch bislang nicht gelungen. > > Im Anhangs-Zip befinden sich: > > Die Eingabedatei "Dat_10_15.txt" die gleichzeitig das Format der > Ausgabe > festlegt, sowie das notebook "datac.nb" und die Ergebnisse meiner > bisherigen Bemühungen "Tab1.dat" "Tab2.dat". > > Das gewünschte Ausgabeformat noch mal spezifiziert: > > - ASCCII wie das Eingabe File ein Datensatz pro Zeile > - keine "geschweiften" Klammern > - nach dem Dezimalpunkt 3stellig > - ohne Exponentialform > - Leerzeichen als Trennzeichen > > Warum, das ganze? > Die Daten sollen mit MMA zwischen verarbeitet und später anderen > Applikationen als Dateninput zur Verfügung stehen. > > Sollte sich das Problem als üblicher Error Support von Microsoft > herausstellen, kein Problem ich arbeite parallel mit Mathematica für > Linux, > da jedoch nur mit Version 4.1. (Student) > > Es wäre fantastisch, wenn mir da jemand weiterhelfen könnte oder mich > zu > mindest auf ein generelles Problem aufmerksam machen könnte. Danke! > > Mit freundlichen Grüßen > > [André El-Ama] > > > ----------------------------------------------------------------------- > ----- > ----------------------- > André El-Ama > Postfach 1725 > 26007 Oldenburg > > Tel.: +49 441 87002 > Fax: +49 441 87013 > e-mail: Andre@XXXXXXX.de > > <test> |