Loading digit from big number

1 visualización (últimos 30 días)
ZK
ZK el 10 de En. de 2013
Hi, I have another question. I have a big number something like 200308091234562. I would like to appeal to indicated parts. To other calculations.
So I would like to have something like this from this big number.
A = 2003 B = 08 C = 09 D = 123
Which funtion should I use. Thank You.
  5 comentarios
ZK
ZK el 10 de En. de 2013
Editada: ZK el 10 de En. de 2013
It is loaded by textread from document. Leading zero means that this is August.
Jan
Jan el 10 de En. de 2013
@ZK: Please post the type of the variable, which contains the shown value. Use the Matlab command class() to find out the type in case of doubt. Numbers do not have a leading zero and in '08' it is surely not the '0' which indicates that it is August, but the '8'.

Iniciar sesión para comentar.

Respuestas (2)

Andreas Goser
Andreas Goser el 10 de En. de 2013
Editada: Andreas Goser el 10 de En. de 2013
I suggest treating this numerical value as a string ('chararcter array') and us such operations, e.g.
s='200308091234562'
A=s(1:4)
Maybe you want to do math with it afterwards:
str2num(A)*2

Jan
Jan el 10 de En. de 2013
If 200308091234562 is a double:
d = 200308091234562
A = floor(d / 1e11);
B = rem(floor(d / 1e9), 100);
C = rem(floor(d / 1e7), 100);
D = rem(floor(d / 1e4), 1000);
If the value is a string:
s = '200308091234562'
A = s(1:4);
B = s(5:6);
C = s(7:8);
D = s(9:11);
  3 comentarios
Jan
Jan el 10 de En. de 2013
Dear ZK, I've presented two different solutions. Therefore "this is it" does not reveal in which format the data are available. Instead of clarifying this, you ask the next question, whose answer require the knowledge of the actual format again. "textread read it as 1x1 cell" is a vague description again, which requires to guess the details.
I suggest the following pattern:
My file contains lines like:
200308091234562
200308099812348
200308012803753
I read it with:
data = textread(fid, '%s');
Now I get a {1x1} cell, which contains a cell string:
data = {{'200308091234562', '200308099812348', '200308012803753'}}
I want to get:
A = 2003; % or '2003' ?
B = 8; % or '08' ?
C = 9;
D = 123;
Then it would be clear, what "I have a big number" means and what you want. Ok?
ZK
ZK el 10 de En. de 2013
OK. Jan Simon, thank You for answer and patience. I will express more precisely my problems in future.
Your suggested pattern presents my problem, with one difference I used textread to read by one line with headerlines.
I would like convert {1x1} cell to string because for this method reading numbers is most clear for me. Can You present me a good formula for it?

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by