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

Schwierigkeit bei Zahlformatierung

 

pet

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2008, 14:11     Titel: Schwierigkeit bei Zahlformatierung
  Antworten mit Zitat      
Ich möchte die folgende Zahl 2.2000e+009 umformatieren,
so dass ich eine Darstellung in dieser Form bekomme:
220000000 (ohne Komma und Punkt)


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 26.08.2008, 14:26     Titel:
  Antworten mit Zitat      
Moin,

wie und wo willst du die Zahl denn darstellen?

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
 
pet

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2008, 14:30     Titel:
  Antworten mit Zitat      
x=2.2000e+009;

dieser Wert soll dann in einer neuen Variablen drin stehe.
Und zwar so y=22000000 (insgesamt 9 Stellen)

Ich kann in der Matlabhilfe nix finden.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 26.08.2008, 14:33     Titel:
  Antworten mit Zitat      
Du willst die also nur im Workspace so angezeigt haben? Das wird nicht gehen, denke ich. Oder willst du die irgendwo anders anzeigen?

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
 
pet

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2008, 14:41     Titel:
  Antworten mit Zitat      
Ich möchte in einer Matrix nach Übereinstimmungen suchen.

Beispiel:

if id == x(k)

Wenn nun id den Wert hat 22000000 und x(1) den Wert 2.2000e+009, dann wird die if Bedingung nie erfüllt sein.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 26.08.2008, 15:01     Titel:
  Antworten mit Zitat      
Schon probiert?!

Sonst mit Runden probieren oder anderen Weg suchen... (Wozu ist solch ein Vergleich sinnvoll? Also ein Vergleich solch großer Zahlen.)

Gruß
Alex

PS: Statt x==y besser isequal(x,y) nehmen!
_________________

>> 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
 
pet

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2008, 15:07     Titel:
  Antworten mit Zitat      
Ich komme nicht drum rum. Ich muss solch einen Vergleich mit den großen Zahlen mit 9 Stellen durchführen.
Also ich weiss auch nicht mehr weiter. Da finde ich Matlab echt scheisse!!!
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 26.08.2008, 15:26     Titel:
  Antworten mit Zitat      
Ich verstehe nicht, wofür ein solcher Vergleich gut sein soll. Ich denke nicht, dass du 2*10^9 Werte vergleichen willst?!

Erklär doch einfach mal, was du machen willst/sollst...

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
 
pet

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.08.2008, 16:06     Titel:
  Antworten mit Zitat      
Ich hab eine Liste mit ca. 10000 bis 20000 Einträge.
Jeder Eintrag enthält eine ID. Zum einen möchte ich feststellen wieviel unterschiedliche ID es gibt bzw. welche es sind und zum anderen möchte ich alle Daten von einer bestimmten ID zusammen suchen und in ein Array bzw. Matrix ablegen. Ich kann da nichts drehen. Diese ID's sind nun mal so groß.

Ich habe es nun anders versucht.

Code:

le2 = length(string_id);
mx=repmat(0, 1, le2);
x=sprintf('%u\n',num_id);
s=0;
n=0;
for m=1:le2
    mx(m) = x(1,1+n:10+n);
    n = n+11;
end


Wenn ich dies so ausführe, dann erhalte ich wieder eine Fehlermeldung:
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.

Ich hasse MATLAB!!!!
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 26.08.2008, 16:14     Titel:
  Antworten mit Zitat      
Um herauszufinden wieviele und welche verschiedenen IDs du hast, bietet sich
Code:
x_uni = unique(x);
x_uni_num = numel(s_uni);
an.

Wenn du dann noch verrätst wo sich die Daten zu einer ID befinden, findet sich für das "Zusammensuchen" auch noch eine Lösung...

Gruß
Alex

pet hat Folgendes geschrieben:
Ich hasse MATLAB!!!!
Shocked
_________________

>> 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
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 26.08.2008, 17:20     Titel:
  Antworten mit Zitat      
Hallo pet,

anhand Deines Codes mit der Variablen string_id habe ich die Ahnung, dass die ID vielleicht als String vorliegen könnte. Stimmt das? Als String sind '22000000' und '2.2000e+009' natürlich auch unterschiedlich. Mit

Code:
isequal(str2num('2200000000'),str2num('2.2e009'))


kann man abprüfen, ob die gemeinten Zahlen übereinstimmen. Andersherum kann man mit strcmp Strings vergleichen, also beispielsweise so:

Code:
string_id = '2200000000';
num_id = 2.2e009;
x = sprintf('%u',num_id);

strcmp(string_id,x)


Für die dritte Zeile kann man auch schreiben

Code:


Zu der Fehlermeldung, über die Du Dich geärgert hast, auch noch schnell ein Wort: In der Schleife weist du einem Element von mx, mx(m), einen ganzen Vektor x(1,1+n:10+n) zu. Das geht nicht. Links und rechts vom Gleichheitszeichen müssen immer gleich viele Elemente stehen. Auch inhaltlich ist die Zeile nicht ganz stimmig, denn der Vektor enthält ja gleich zehn Ziffern der num_id, in mx soll aber jeweils nur eine Ziffer zur Zeit abgelegt werden.

Herzliche Grüße
Bijick

PS: Je ausführlicher und genauer Du Dein Problem beschreibst, desto schneller und einfacher können wir Dir helfen.
_________________

>> why
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 - 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.