Programación Específica > Matlab
Novato en MatLab
(1/1)
Victorv:
Hola a todos.
Soy novato en programacion, si pueden ayudarme con este algoritmo. Necesito que N sea N=[2 6 8 23 31 38 46].
%M son los 50 datos
n=50;
M=[101 49.21 77.78 87.30 92.06 52.38 88.00 68.89 87.30 122.00 95.00 99.00 92.06 87.30 90.48 90.48 80.00 110.00 72.50 88.89 77.50 89.00 42.00 88.89 87.00 85.00 77.00 92.06 112.00 82.54 60.00 93.65 82.00 93.65 85.71 87.30 99.00 142.00 88.00 95.24 77.78 95.24 99.00 96.83 93.65 57.14 72.50 122.22 79.00 71.43]';
for i=1:n
if M(i) <= 70.00
N(i,1) = i;
elseif M(i) >= 125.00
N(i,1) = i;
end
end
N % indica la posicion de los datos buscados
Me da este resultado
N =[0 2 0 0 0 6 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 0 0 0 0 0 0 0 31 0 0 0 0 0 0 38 0 0 0 0 0 0 0 46]
Quiero que N sea N=[2 6 8 23 31 38 46].
Desde ya muchas gracias.
EliotHijano:
Si No quieres cambiar tu codigo:
--- Código: Matlab M --- cont=1;for index=1:length(N) if ( N(index)!=0 ) NN(cont)=N(index); cont=cont+1; endendN=NN;
Si quieres cambiarlo:
--- Código: Matlab M ---%M son los 50 datosn=50;M=[101 49.21 77.78 87.30 92.06 52.38 88.00 68.89 87.30 122.00 95.00 99.00 92.06 87.30 90.48 90.48 80.00 110.00 72.50 88.89 77.50 89.00 42.00 88.89 87.00 85.00 77.00 92.06 112.00 82.54 60.00 93.65 82.00 93.65 85.71 87.30 99.00 142.00 88.00 95.24 77.78 95.24 99.00 96.83 93.65 57.14 72.50 122.22 79.00 71.43]';cont=1; %lo utilizaremos para que no se añadan ceros, que vaya añadiendo los números que queremos, uno tras otro.for i=1:n if (M(i) <= 70.00) N(cont,1) = i; cont=cont+1; elseif (M(i) >= 125.00) N(cont,1) = i; cont=cont+1; endendN % indica la posicion de los datos buscados
Sin duda este ultimo es mejor, mucho más rápido.
Victorv:
Excelente, la respuesta.
Muchas gracias, Saludos.
Navegación
Ir a la versión completa