Cómo tener el mismo vector de un script dentro de una funcion
Publicado por Bel (24 intervenciones) el 19/02/2019 05:48:26
Hola a todos.
Tengo el siguiente problema: Estoy escribiendo un Script en el que tengo un vector del cual necesito los valores para utilizar en diferentes opciones. Programadas, sin embargo, no sé cómo hacer que ese vector sea leido en una de las funciones que hace parte de las opciones. Os dejo un ejemplo de lo que busco. Gracias.
Como véis para el caso 2 voy a necesitar los mismos valores de vec1 ingresados al principio. De todas formas, la funcion del caso 1 no corre en Matlab.
GRACIAS.
Tengo el siguiente problema: Estoy escribiendo un Script en el que tengo un vector del cual necesito los valores para utilizar en diferentes opciones. Programadas, sin embargo, no sé cómo hacer que ese vector sea leido en una de las funciones que hace parte de las opciones. Os dejo un ejemplo de lo que busco. Gracias.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
continuar = true;
opcion = 0;
nelem = input ('Cuantas calificaciones va a ingresar: ');
vec1 = zeros (1,nelem);
for i = 1:nelem
vec1(i) = input(['calificacion #', num2str(i),' ']);
end
disp(vec1)
while seguircontinuar
opcion = menu(); % Este lo programe para que me aparezca una especie de menu con los dos casos a usar.
disp(opcion)
pause (0.2)
switch (opcion)
case 1
fprintf('Clasifica las calificaciones\n')
calificaciones = clasificacion_calificaciones (vec1);
case 2
fprintf('Promedio de los aprobados y reprobados\n')
promedio = aprovados_reprovados (vec1);
case 0
fprintf ('Salir\n')
otherwise
fprintf('Opcion invalida\n');
end
end
% Para el caso 1 escribi un codigo como función en otro archivo, así:
function [contadores] = contador_calificaciones(vec1)
ContAprov = 0;
ContDesaprov = 0;
ContLimite = 0;
if vec1>0.0 && vec1<5
fprintf ('%d es calificacion aprobadoria\n', vec1)
ContDesaprov = ContDesaprov+1;
end
if vec1 == 5
fprintf ('%d es una calificacion sobre el limite\n', vec1)
ContLimite = ContLimite+1;
end
if vec1>5.0 && vec1<=10
fprintf ('%d es calificacion aprobatoria\n', vec1)
ContAprov = ContAprov+1;
end
% Suma de los distintos pH
fprintf('El numero de calificaciones aprovatorias es: %0.1f\n',ContAprov);
fprintf('El numero de calificaciones sobre el limite es: %0.1f\n',ContLimite);
fprintf('El numero de calificaciones desaprovatorias es: %0.1f\n',ContDesaprov);
end
Como véis para el caso 2 voy a necesitar los mismos valores de vec1 ingresados al principio. De todas formas, la funcion del caso 1 no corre en Matlab.
GRACIAS.
Valora esta pregunta
1