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

Zahl ohne Vorkommazahl darstellen! Wie?

 

ThorstenBWS
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 04.03.11
Wohnort: Ulm
Version: ---
     Beitrag Verfasst am: 09.03.2011, 16:50     Titel: Zahl ohne Vorkommazahl darstellen! Wie?
  Antworten mit Zitat      
Hab das Problem das ich die Aussage von meiner Matrix noch nicht richtig funktioniert. Ich möchte gerne die eine einheitliche Formatierung bekommen die wie Nachstehend ausschaut.

Wie lege man das so fest das, dass es so aussieht?
Z.B:

713416 -.407507E+03 -.433315E+03 0.210905E+03

Momentan sieht mein Plott so aus:

Code:


706927 2.06525E+002 -3.99693E+002 2.12863E+002
706928 4.34589E+002 -4.11347E+002 2.11179E+002
706992 -4.24576E+002 -4.11718E+002 2.10424E+002
706993 -3.84930E+002 -4.15930E+002 2.12906E+002
706994 -2.96564E+002 -4.04704E+002 2.07329E+002
706995 -2.26048E+002 -4.03997E+002 2.11088E+002
706996 -1.59892E+002 -3.78298E+002 2.10615E+002
706997 -1.39666E+002 -3.82059E+002 2.13920E+002
706998 -1.41133E+002 -3.72339E+002 2.12062E+002
706999 -9.35989E+001 -3.65533E+002 2.12805E+002
707000 -6.57277E+001 -3.58885E+002 2.10138E+002
707001 -9.90886E+000 -3.43158E+002 2.09847E+002
707002 9.49127E+000 -3.43249E+002 2.10255E+002
707003 1.84821E+001 -3.53339E+002 2.12700E+002
707004 1.92364E+001 -3.43376E+002 2.12431E+002

[/code]

Durch die Vorzeichen wird die Zahl verschoben. Daher muss ich ohne Vorkommezahl die Zahl reinschreiben. Nur wie ?

Hier meine Code:

Code:



fid=fopen('Mges.asc','w');
fprintf(fid,['    ',num2str(Q),'\r\n']);   %schreibt ausgelesenen Matrix Size (Zeilengröße) wieder an die Stelle 1  
fprintf(fid,['   %d',repmat(' %.6E',1,size([M1,M2,M3,M4],2)-2),' %.6E\r\n'],[M1,M2,M3,M4]');


 

_________________

Matlab Newbe
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Peter Quint
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 21.02.11
Wohnort: Lübeck
Version: R2010b
     Beitrag Verfasst am: 09.03.2011, 19:08     Titel:
  Antworten mit Zitat      
Also, ich muss gleich nach Hause, daher nur eine abgebrochene Antwort.

Wenn es Dir nur wichtig ist, dass alle Zahlen das gleiche "Format" haben, probiere doch folgendes:

Code:
fprintf('%+2.8E',-12.1222899922)


Erläuterung: in Exponential-Schreibweise mit einer Vorkommazahl (ohne geht es meines Wissens leider nicht). Dank dem "+" schreib er immer das Vorzeichen.

Ist zwar nicht das Format was Du haben willst, aber vielleicht genügt es Dir ja Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 10.03.2011, 10:40     Titel:
  Antworten mit Zitat      
Hallo ThorstenBWS,
du musst etwas geduldiger sein. Das ist hier ein Forum und kein Chat.

Der Thread hier resultiert aus dem folgenden:
http://www.gomatlab.de/matrix-mit-d.....te-ordnen-wie-t16948.html

(Um den Zusammenhang zu erstellen)
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.03.2011, 10:49     Titel:
  Antworten mit Zitat      
-4.24576E+002 hat 14 zeichen, ohne das Minus 13,
du könntest also auch die Anzahl der Zeichen fest vorgeben:

Code:

fprintf(fid,['   %d',repmat(' %15.6E',1,size([M1,M2,M3,M4],2)-2),' %15.6E\r\n'],[M1,M2,M3,M4]');
 
ThorstenBWS
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 04.03.11
Wohnort: Ulm
Version: ---
     Beitrag Verfasst am: 10.03.2011, 11:14     Titel:
  Antworten mit Zitat      
Sorry Peter,

ist mir bewusst. Aber da das erneute Prob. nicht mehr zum Eigentlichen Thema passte...

Ich hab noch ein Formatierungsprob. mit den E Zeichen. Kann man die Ausgabe der E Nullen von 002 auf 02 setzten?

-4.308030E+002 auf -.430803E+03
_________________

Matlab Newbe
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
ThorstenBWS
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 04.03.11
Wohnort: Ulm
Version: ---
     Beitrag Verfasst am: 10.03.2011, 12:21     Titel: Exponential Darstellung E+002 in E+02 konvertieren!?
  Antworten mit Zitat      
Hab eben in Netz nachgelesen, dass die Ausgabe E+002 eine windowstypische Ausgabe ist. Aus diesem Grund muss ich meine Spalten nun einlesen und nach jedem E eine Null rauslöschen!

Wie muss ich das in meinem Code genau umbauen?

Am beseten wäre so eine Formatierung:

-4.308030E+002 auf -.430803E+03

Code:


M1 = dlmread(Matrix.asc', '', ['A2..A',num2str(Q2)]); %Einlesen einer Spalte
..

fprintf(fid,['    %d',repmat(' %12.6e',1,size([M1,M2,M3,M4],2)-2),' %12.6e\r\n'],[M1,M2,M3,M4]');  %Speichern chreiben



 

_________________

Matlab Newbe
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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 - 2025 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.