Matlab - Vector de String desde ciclo For

 
Vista:
Imágen de perfil de Carlos I

Vector de String desde ciclo For

Publicado por Carlos I (3 intervenciones) el 09/03/2018 22:35:27
Reciban un cordial saludo.
Tengo el siguiente inconveniente:
Realizo la construcción de un Vector el cual debe estar conformado por elementos tipo string, por ejemplo placas de vehiculo 'TPB897'

Tengo el siguiente codigo:

2018-03-09-8

Cuando intento imprimir en pantalla una de las placas invocando el índice del elemento este me trae solamente una letra de la placa y no toda ella. Por ejemplo

------ El automovil con mayor velocidad corresponde a R 84.00 Km/h ----

El vector que arme fue el siguiente.

>> p

p =

'BRK782''KDR458''LQR879'

>>


Agradezco la ayuda que me puedan brindar
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 Carlos I

Vector de String desde ciclo For

Publicado por Carlos I (3 intervenciones) el 09/03/2018 23:07:58
Con mucho Gusto.

El código es este

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
26
27
28
29
30
31
32
33
34
35
36
37
clear all
n = input ('\n Ingrese la cantidad de Automóviles para registrar: \n');
v=[];
p=[];
for i=1:n
    x = input('Ingrese placa del Automóvil: \n','s');
    p=[p,x];
    y = input ('Ingrese la Velocidad del Automóvil: \n');
    v=[v,y];
end
while menu <=5
    disp('1)- PROMEDIO DE VELOCIDAD');
    disp('2)- AUTOMÓVIL A MAYOR VELOCIDAD');
    disp('3)- AUTOMÓVIL A MENOR VELOCIDAD');
    disp('4)- NÚMERO DE AUTOMÓVILES CON VELOCIDAD MAYOR AL PROMEDIO');
    disp('5)- SALIR');
    menu = input ('Elija la opción de análisis: ');
    switch menu
        case 1
            prom = mean(v);
            fprintf('La velocidad promedio de los Automoviles es: %.2f Km/h \n \n',prom);
        case 2
            mayor = max(max(v));
            a = find(v==mayor);
            fprintf('El automóvil con mayor velocidad corresponde a %c %.2f Km/h \n \n',a , mayor);
        case 3
            menor = min(min(v));
            b = find(v==menor);
            fprintf('La menor velocidad de Automóviles es %c %.2f Km/h \n \n', b , menor);
        case 4
            c = find(v > prom);
            d= (c);
            fprintf('Tenemos %d Automóviles con velocidad superior al promedio\n \n', d);
        case 5
            break
    end
end


La ejecucion me muestra lo siguiente (Ver la opción de análisis 2,3) Observar que lo que necesito es que ademas de la velocidad tambien me traiga la placa a la que corresponde ese dato.

>> Placas_Vehiculos

Ingrese la cantidad de Automóviles para registrar:
3
Ingrese placa del Automóvil:
'BRK783'
Ingrese la Velocidad del Automóvil:
71
Ingrese placa del Automóvil:
'KLT789'
Ingrese la Velocidad del Automóvil:
69
Ingrese placa del Automóvil:
'RTW258'
Ingrese la Velocidad del Automóvil:
89
MENU: No menu items to choose from.
1)- PROMEDIO DE VELOCIDAD
2)- AUTOMÓVIL A MAYOR VELOCIDAD
3)- AUTOMÓVIL A MENOR VELOCIDAD
4)- NÚMERO DE AUTOMÓVILES CON VELOCIDAD MAYOR AL PROMEDIO
5)- SALIR
Elija la opción de análisis: 1
La velocidad promedio de los Automoviles es: 76.33 Km/h

1)- PROMEDIO DE VELOCIDAD
2)- AUTOMÓVIL A MAYOR VELOCIDAD
3)- AUTOMÓVIL A MENOR VELOCIDAD
4)- NÚMERO DE AUTOMÓVILES CON VELOCIDAD MAYOR AL PROMEDIO
5)- SALIR
Elija la opción de análisis: 2
El automóvil con mayor velocidad corresponde a  89.00 Km/h

1)- PROMEDIO DE VELOCIDAD
2)- AUTOMÓVIL A MAYOR VELOCIDAD
3)- AUTOMÓVIL A MENOR VELOCIDAD
4)- NÚMERO DE AUTOMÓVILES CON VELOCIDAD MAYOR AL PROMEDIO
5)- SALIR
Elija la opción de análisis: 3
La menor velocidad de Automóviles es  69.00 Km/h

1)- PROMEDIO DE VELOCIDAD
2)- AUTOMÓVIL A MAYOR VELOCIDAD
3)- AUTOMÓVIL A MENOR VELOCIDAD
4)- NÚMERO DE AUTOMÓVILES CON VELOCIDAD MAYOR AL PROMEDIO
5)- SALIR
Elija la opción de análisis: 4
Tenemos 3 Automóviles con velocidad superior al promedio

1)- PROMEDIO DE VELOCIDAD
2)- AUTOMÓVIL A MAYOR VELOCIDAD
3)- AUTOMÓVIL A MENOR VELOCIDAD
4)- NÚMERO DE AUTOMÓVILES CON VELOCIDAD MAYOR AL PROMEDIO
5)- SALIR
Elija la opción de análisis: 5
>>
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

Vector de String desde ciclo For

Publicado por Gerardo (104 intervenciones) el 09/03/2018 23:52:21
Hola,
A lo que se refieren es, entiendo yo, que en la la linea 24 y 28 pones %c en ves de %s

1
%c ---> corresponde a Single Character

Saludos
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Vector de String desde ciclo For

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 09/03/2018 23:57:06
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
clear all
n = input ('\n Ingrese la cantidad de Automóviles para registrar: \n');
v=[];
p=[];
 
 for i=1:n
 x = input('Ingrese placa del Automóvil: \n','s');
 p=[p;x];
 y = input('Ingrese la Velocidad del Automóvil: \n');
 v=[v,y];
 end
% p=['BRK783';'KLT789'; 'RTW258' ]
% v=[71,69,89]
while menu <=5
disp('1)- PROMEDIO DE VELOCIDAD');
disp('2)- AUTOMÓVIL A MAYOR VELOCIDAD');
disp('3)- AUTOMÓVIL A MENOR VELOCIDAD');
disp('4)- NÚMERO DE AUTOMÓVILES CON VELOCIDAD MAYOR AL PROMEDIO');
disp('5)- SALIR');
menu = input ('Elija la opción de análisis: ');
switch menu
case 1
prom = mean(v);
fprintf('La velocidad promedio de los Automoviles es: %.2f Km/h \n \n',prom);
case 2
mayor = max(max(v));
a = find(v==mayor);
fprintf('El automóvil con mayor velocidad corresponde a %s %.2f Km/h \n \n',p(a,:) , mayor);
case 3
menor = min(min(v));
b = find(v==menor);
fprintf('La menor velocidad de Automóviles es %s %.2f Km/h \n \n', p(b,:) , menor);
case 4
c = find(v > prom);
d= (c);
fprintf('Tenemos %d Automóviles con velocidad superior al promedio\n \n', d);
case 5
break
end
end


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Carlos I

Vector de String desde ciclo For

Publicado por Carlos I (3 intervenciones) el 10/03/2018 00:05:02
Muchas Gracias Sr. Jose

Acabo de incorporar las modificaciones realizadas por usted y el resultado es el esperado.

Le quedo agradesido por la colaboracion.
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