Matlab - Eliminar elementos de un cell

 
Vista:

Eliminar elementos de un cell

Publicado por Sergio (12 intervenciones) el 12/12/2017 13:35:54
Hola. Tengo el siguiente problema:

Dispongo de un cell llamando FileName2 de dimensión 1x376, en el cuál en cada posición hay un elemento de caracteres (char) del tipo Axxxxx.snx o del tipo Axxxxxp.snx. Me gustaría poder eliminar aquellos elementos del tipo Axxxxxp.snx que tiene 1 carácter más que el otro tipo.

Muchas gracias por su ayuda, un saludo.
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 Daniel
Val: 399
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Eliminar elementos de un cell

Publicado por Daniel (264 intervenciones) el 12/12/2017 20:48:47
Hay varias formas de hacerlo según lo que distinga a los elementos, pongo ambas para que veas cual se adecua a esta circunstancia:

1
2
3
4
5
6
% esto es para crear artificilmente la variable FileName2 para probarlo (esto no deberías ponerlo en tu código)
clear all
for j=1:188
    FileName2{1,2*j-1}=['A' num2str(j,'%05d') '.snx'];
    FileName2{1,2*j}=['A' num2str(j,'%05d') 'p.snx'];
end


1
2
3
4
5
6
7
8
9
% opcion 1: por caracteres que lo distinguen 
q1=strfind(FileName2(1,:),{'p.snx'}); % encuentra cuales terminan con p.snx
s1=cellfun(@isempty,q1); % validación lógica 1=(no lo encontró) 0=(lo encontró)
w1=FileName2(s1); % crea una variable cell en base a la condición lógica s1
 
% opcion 2: por cantidad de caracteres
q2=cellfun(@numel,FileName2); % cuenta el número de caracteres
s2=(q2==10); % validación lógica 1=(10 caracteres) 0=(no tiene 10 caracteres)
w2=FileName2(s2); % crea una variable cell en base a la condición lógica s2

Ya sea w1 o w2 son los resultados, es decir, la parte de FileName2 que cumple las condiciones

Tambien de manera abreviada puedes borrar de la variable original FileName2 los elementos de 11 caracteres usando

1
FileName2(cellfun(@numel,FileName2)==11)=[];


Comentanos como te fue

Saludos

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

Eliminar elementos de un cell

Publicado por JOSE JEREMIAS CABALLERO (5779 intervenciones) el 12/12/2017 21:40:16
Podría poner el cell que menciona para tener una idea mas clara de lo que desea hacer.


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
0
Comentar