Matlab - Números romanos en matlab

 
Vista:
sin imagen de perfil

Números romanos en matlab

Publicado por Lara David (3 intervenciones) el 07/12/2016 00:30:59
Un saludo con todos, me podrian ayudar a mejorar este codigo que transforma de numeros de la serie de fibonacci a numeros romanos, y me podrian explicar la diferencia entre { } y [ ] en matlab y tambien entre comillas simples y dobles.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
f=[1 1 ];
fr=[];
for i=2:10
    f(i+1)=f(i)+f(i-1);
end
disp(f);
num2=0;
unidades={'I','II','III','IV','V','VI','VII','VIII','IX'};
decenas={'X','XX','XXX','XL','L','LX','LXX','LXXX','IM'};
centenas=['M','MM','XXX','XL','L','LX','LXX','LXXX','IM'];
for i=1:length(f)
    cadena=num2str(f(i));
    if length(cadena)==1
        num1=str2num(cadena(1));
        romano=unidades(num1);
    end
    if length(cadena)==2
        num1=str2num(cadena(1));
        num2=str2num(cadena(2));
        romano=strcat(char(decenas(num1)),char(unidades(num2)));        %creo que no deberia usar char
 
    end
    fr=[fr romano];
end
fr
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Números romanos en matlab

Publicado por Royeth (1818 intervenciones) el 07/12/2016 03:02:14
{} , sirve para crear variables tipo celda , aquí puedes almacenar en cada celda el tipo de variable que quieras , en cambio si utilizas [] sirve para almacenar matrices numéricas o para concatenar


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
f=[1 1 ];
fr=[];
for i=2:10
f(i+1)=f(i)+f(i-1);
end
disp(f);
num2=0;
unidades={'I','II','III','IV','V','VI','VII','VIII','IX'};
decenas={'X','XX','XXX','XL','L','LX','LXX','LXXX','IM'};
centenas=['M','MM','XXX','XL','L','LX','LXX','LXXX','IM'];
for i=1:length(f)
cadena=num2str(f(i));
if length(cadena)==1
num1=str2double(cadena(1));
romano=unidades(num1);
end
if length(cadena)==2
num1=str2double(cadena(1));
num2=str2double(cadena(2));
romano=strcat(decenas(num1),unidades(num2)); %creo que no deberia usar char
end
fr=[fr romano];
end
disp(fr)


matlab utiliza las comillas simples para guardar texto , las comillas dobles no tienen significado solo es un carácter de texto más

saludos
https://www.facebook.com/royethmatlab/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Números romanos en matlab

Publicado por Lara David (3 intervenciones) el 07/12/2016 03:48:53
1
2
unidades={'I','II','III','IV','V','VI','VII','VIII','IX'};
decenas={'X','XX','XXX','XL','L','LX','LXX','LXXX','IM'};
en esta parte quisiera hacerlo con [ ] pero me toma como una sola cadena por ejemplo unidadades(8)=V pero quiero que sea VIII
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Números romanos en matlab

Publicado por Royeth (1818 intervenciones) el 07/12/2016 05:01:40
escribe
1
unidades{8}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar