WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Spalten in Datei schreiben

 

HF-SCF
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 04.05.09
Wohnort: ---
Version: R2009a
     Beitrag Verfasst am: 21.08.2009, 10:21     Titel: Spalten in Datei schreiben
  Antworten mit Zitat      
Hallo,


ich bin wohl zu doof Very Happy

Ich will eine Datei schreiben, in der verschiedene Spalten erzeugt werden also um genau zu sein 91.
Ich hab eine Gleichung mit 2 Parametern, in der ich einen Konstant halten will und der andere durchläuft von 1 bis 90
1. Spalte ist natürlich der x Parameter
Über die Spalten hinweg soll dann y variiert werden und x durchlaufen.
Er schreibt mir aber keine verschiedenen Spalten sondern alls in eine, also hintereinander.

Wie kann ich das ändern?

Gruß
HF
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 21.08.2009, 10:30     Titel:
  Antworten mit Zitat      
Moin,

kommt darauf an wie du es bis jetzt gemacht hast Wink

Ohne Code kann man leider nicht sagen was du ändern musst, aber ich würde auf die Schnelle auf ein vergessenes '\n' am Ende deines Codes für das Schreiben einer Zeile tippen.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
HF-SCF
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 04.05.09
Wohnort: ---
Version: R2009a
     Beitrag Verfasst am: 21.08.2009, 10:43     Titel:
  Antworten mit Zitat      
Hi,

danke für die Antwort. Daran dürfte es nicht gelegen haben. Hier der Code
Code:

function write_file()

filename = 'blablubb.txt';

fid = fopen(filename, 'w');
if( fid < 0)
    fprintf(' Fehlfunktion \n', filename);
    return;
end
 
    for( y = 0:1:90)  
      for( x = 0:1:90 )
        A = (((251*pi)/128 - (9*cos(2*x + y))/4 - cos(4*x + y)/8 + (9*cos(2*x - y))/4 + cos(2*x - 3*y)/4 - cos(2*x + 3*y)/4 + cos(4*x - y)/8 + cos(4*x - 3*y)/8 - cos(4*x + 3*y)/8 + (5*pi*cos(2*x - 2*y))/16 + (5*pi*cos(2*x + 2*y))/16 + (3*pi*cos(2*x - 4*y))/64 + (3*pi*cos(2*x + 4*y))/64 + (3*pi*cos(4*x - 2*y))/64 + (3*pi*cos(4*x + 2*y))/64 + (3*pi*cos(4*x - 4*y))/256 + (3*pi*cos(4*x + 4*y))/256 + (17*pi*cos(2*x))/32 + (9*pi*cos(4*x))/128 + (17*pi*cos(2*y))/32 + (9*pi*cos(4*y))/128)/((41*pi)/128 - (pi*cos(2*x - 2*y))/16 - (pi*cos(2*x + 2*y))/16 + (pi*cos(2*x - 4*y))/64 + (pi*cos(2*x + 4*y))/64 + (pi*cos(4*x - 2*y))/64 + (pi*cos(4*x + 2*y))/64 + (pi*cos(4*x - 4*y))/256 + (pi*cos(4*x + 4*y))/256 - (5*pi*cos(2*x))/32 + (3*pi*cos(4*x))/128 - (5*pi*cos(2*y))/32 + (3*pi*cos(4*y))/128));
        fprintf(fid, '%d\t%4.3e\r\n',  [x, A]);
      end
    end

fclose(fid);
   


Ne idee?
Private Nachricht senden Benutzer-Profile anzeigen
 
_Thomas
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 17.08.09
Wohnort: Stuttgart
Version: ---
     Beitrag Verfasst am: 23.08.2009, 15:56     Titel:
  Antworten mit Zitat      
Hallo!
Hoffe ich habe dein Problem richtig verstanden. Das ist eine Funktion, die von x und y abhängt ( f(x,y) ), aber deine Beschreibung verstehe ich so:
Du willst eine Funktion y=f(x) auswerten, x ist ganzzahlig von 0 bis 90.

Erzeuge dazu doch einen x-Vektor

Code:

x=[0:1:90]';
 

und deine Funktion (nur Beispiel)
Code:


Achte drauf, dass beides Spaltenvektoren werden (oder transponiere andernfalls) und bastel eine 91x2-Matrix draus:
Code:

A=[x,y];
 
.


Mit den for-Schleifen musst du aufpassen. So wie du den Code geschrieben hast setzt er nicht in A bei jedem neuen Schritt das Ergebnis in eine neue Spalte, sondern überschreibt immer das alte Ergebnis. Du musst deinen durchlaufenden Zählwert in A mit einbringen, z.B.
Code:

for x=0:90
A(x,1)=x;
A(x,2)=...
.
Dann setzt er für jeden neuen x-Wert erstmal x in die erste Spalte und das Ergebnis (A=...) in eine zweite Spalte von A.



MfG, Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.