Matlab - aplicar un condicional "if" a un vector y obtener una nueva matriz con el resultado

 
Vista:

aplicar un condicional "if" a un vector y obtener una nueva matriz con el resultado

Publicado por LeslieMar (2 intervenciones) el 18/05/2018 05:08:19
Hola,

He estado tratando de generar un código que me permita aplicar un condicional a cada elemento de un vector y poner los resultados en un nuevo vector; lo que tengo hasta el momento es lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function G=imptoacargo(L)
[M,N]=size(L);
G=zero(n);
for i=1:N
    if L(i)<1090;
        G(i)=L(i)*0
    elseif (L(i)>1090)&&(L(i)<1700);
        G(i)=(L(i)*0.19)
    elseif (L(i)>1700)&&(L(i)<4100);
        G(i)=(L(i)*0.28)+116
    else
        G(i)=(L(i)*0.33)+788
    end
end


Lo anterior me da como resultado un escalar, además el vector sobre el que debo aplicar la operación no está compuesto por números enteros
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

aplicar un condicional "if" a un vector y obtener una nueva matriz con el resultado

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 18/05/2018 06:12:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function G=imptoacargo(L)
if nargin==0
    L=round(10000*rand(1,20));
end
 N=size(L,2);
G=zeros(1,N);
for i=1:N
    if L(i)<1090
        G(i)=L(i)*0;
    elseif (L(i)>1090) && (L(i)<1700)
        G(i)=L(i)*0.19;
    elseif (L(i)>1700) && (L(i)<4100)
        G(i)=L(i)*0.28+116;
    else
    G(i)=L(i)*0.33+788;
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

aplicar un condicional "if" a un vector y obtener una nueva matriz con el resultado

Publicado por LeslieMar (2 intervenciones) el 18/05/2018 06:54:34
Muchas gracias,
Sin embargo, soy algo nueva en esto, podrías explicarme, por favor, los cambios que realizaste, de tal manera que pueda aprender?

Mil gracias
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
Val: 78
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

aplicar un condicional "if" a un vector y obtener una nueva matriz con el resultado

Publicado por Emmanuel (31 intervenciones) el 18/05/2018 19:32:07
no le veo problemas a tu código lesli, solo tienes definida una "N" en size(L) y utilizas "n" en G=zeros(n)
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