Existe algun comando???
hola.
Soy bastante nuevo en esto, y tal vez sea una chorrada pero tengo una duda. Me explico.
Por ejemplo:
si tenemos el vector a=[1 2 3 4 5 6 7 8 9 10]
y otro b=[1 4]
quisiera obtener un vector c=[2 3 5 6 7 8 9 10]
me he vuelto loco haciendo bules y demas pero no lo consigo.
Gracias
Soy bastante nuevo en esto, y tal vez sea una chorrada pero tengo una duda. Me explico.
Por ejemplo:
si tenemos el vector a=[1 2 3 4 5 6 7 8 9 10]
y otro b=[1 4]
quisiera obtener un vector c=[2 3 5 6 7 8 9 10]
me he vuelto loco haciendo bules y demas pero no lo consigo.
Gracias
yo tmb soy novatillo, y esto es lo primero que se me ha ocurrido, seguro hay aluna forma mucho mas eficaz, pero tambien funciona para tu caso. y es facil de modificar si se cambian los parametros o se quieren eliminar mas numeros, ya que la estructura siempre es la misma.
disp(\'el vector inicial es: a\')
[x,j]=find(a==input(\'primer numero que qieres elimiar\'));
[x,l]=size(a);
b=[];
for i=1:l
if i~=j
b=[b a(1,i)];
end
end
[x,p]=find(b==input(\'segundo numero que qieres elimiar\'));
[x,l]=size(b);
c=[];
for i=1:l
if i~=p
c=[c b(1,i)];
end
end
c
disp(\'el vector inicial es: a\')
[x,j]=find(a==input(\'primer numero que qieres elimiar\'));
[x,l]=size(a);
b=[];
for i=1:l
if i~=j
b=[b a(1,i)];
end
end
[x,p]=find(b==input(\'segundo numero que qieres elimiar\'));
[x,l]=size(b);
c=[];
for i=1:l
if i~=p
c=[c b(1,i)];
end
end
c
muchas gracias por vuestro tiempo
También he dado con otra forma:
a(b)=[]
que sencillo eh???!!!!!!!
También he dado con otra forma:
a(b)=[]
que sencillo eh???!!!!!!!
por si no se ve claro [] es matriz vacia: [ ]
lo necesitaba para hacer un programa que de como salida el orden de calculo y ciclos maximos dada una matriz de relación Booleana.
Si os interesa en terminarlo lo os lo paso
lo necesitaba para hacer un programa que de como salida el orden de calculo y ciclos maximos dada una matriz de relación Booleana.
Si os interesa en terminarlo lo os lo paso
Pues si que era simple, al principio lo habia probado con la posicion a(1,1) y a(1,4)=[] pero me dava un error, era mas simple, no poner la fila, supongo que pq es un vector entonces no hay que decirle la fila. pues eso que soy novatillo.
Respecto al programa que dices, pues sinceramente no sabria por donde empezar, pero sà me interesa, asi es como voy ha aprender.
mi direccion de correo es [email protected]
Es uno de los pocos foros de matlab que he encontrado. sabes si hay mas?
gracias.
Respecto al programa que dices, pues sinceramente no sabria por donde empezar, pero sà me interesa, asi es como voy ha aprender.
mi direccion de correo es [email protected]
Es uno de los pocos foros de matlab que he encontrado. sabes si hay mas?
gracias.
Es lo primero que se me ha ocurrido, pero se podria mejorar... Pero bueno, funciona :)
function c=elimina(a,b)
%a=[1 2 3 4 5 6 7 8 9 10];
%b=[1 4];
%c=[2 3 5 6 7 8 9 10];
tam_a=length(a);
tam_b=length(b);
tam_c=tam_a-tam_b;
c=zeros(1,tam_c);
i=1; % Para moverme por vector a
j=1; % Para moverme por vector b
k=1; % Para moverme por vector c
flag=0; % Mira si existe un termino concidente
for i=1:1:tam_a
for j=1:1:tam_b
if (a(i)==b(j))
flag=flag+1;
end
j=j+1;
end
if(flag==0)
c(k)=a(i);
k=k+1;
end
flag=0;
j=1;
i=i+1;
end
function c=elimina(a,b)
%a=[1 2 3 4 5 6 7 8 9 10];
%b=[1 4];
%c=[2 3 5 6 7 8 9 10];
tam_a=length(a);
tam_b=length(b);
tam_c=tam_a-tam_b;
c=zeros(1,tam_c);
i=1; % Para moverme por vector a
j=1; % Para moverme por vector b
k=1; % Para moverme por vector c
flag=0; % Mira si existe un termino concidente
for i=1:1:tam_a
for j=1:1:tam_b
if (a(i)==b(j))
flag=flag+1;
end
j=j+1;
end
if(flag==0)
c(k)=a(i);
k=k+1;
end
flag=0;
j=1;
i=i+1;
end
