Matlab - crear una matriz a partir de otra pere eliminando las filas que contengan un 1

 
Vista:

crear una matriz a partir de otra pere eliminando las filas que contengan un 1

Publicado por anonimo (3 intervenciones) el 05/05/2012 00:38:43
Hola el codigo que hago servir es el siguiente :
C es la siguiente matriz que ya me viene dada de utilizar codigos anteriores, a partir de aqui he de eliminar las filas que tengan un 1 (cada fila es un vector , de forma que la matriz solo tiene una columna.
la matriz siguiente , es la matriz en cuestion, la llamaré C:

[13,10,9,11,12]
[13,8,6,12]
[8,6,5,4,7]
[12,6,5,2,11]
[13,8,7,3,10]
[5,2,1,4]
[7,3,1,4]
[11,2,1,9]
[10,3,1,9]
----
aqui os pongo el codigo para que me cree una nueva matriz solo con las filas que no tienen 1 en su fila de vector, pero me devuelve el siguiente error: Error in ==> T(p,:)=cell2double(C(p,:));


[nfilasC, ncolsC]=size(C);
p=1;
encontrado = false;
T=[];
while (p<=nfilasC)
s=1;
while (s<=length(C{p})&& ~encontrado)
if (C{p}(s)~=1)
s=s+1;
else
encontrado=true;
end
end
if(encontrado==false)
T(p,:)=C(p,:);
end
p=p+1;
end
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

crear una matriz a partir de otra pere eliminando las filas que contengan un 1

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 05/05/2012 05:56:25
HOla ?.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clear all
C=[13,10,9,11;
 13,8,6,12;
 8,6,5,4;
 12,6,5,2;
 13,8,7,3;
 5,2,1,4;
 7,3,1,4;
 11,2,1,9;
 10,3,1,1];
 k=1;
for i=1:size(C,1)
  [a,b]=find(C(i,:)==1);
  if sum(a)==0
      B(k,:)=C(i,:);
      k=k+1;
  end
end
display(C);
display(B);


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
>> eliminar_filas
 
C =
 
    13    10     9    11
    13     8     6    12
     8     6     5     4
    12     6     5     2
    13     8     7     3
     5     2     1     4
     7     3     1     4
    11     2     1     9
    10     3     1     1
 
 
B =
 
    13    10     9    11
    13     8     6    12
     8     6     5     4
    12     6     5     2
    13     8     7     3[/b


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

[b] http://matlabcaballero.blogspot.com
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

crear una matriz a partir de otra pere eliminando las filas que contengan un 1

Publicado por anonimo (3 intervenciones) el 05/05/2012 10:14:45
Hola muchas gracias por contestarme, pero no me entendiste bien en cuanto al formato de la matriz C, yo cuando pongo lo del display (C); me sale lo siguiente :

C =

[1x5 double]
[1x4 double]
[1x5 double]
[1x5 double]
[1x5 double]
[1x4 double]
[1x4 double]
[1x4 double]
[1x4 double]

y si abro el comando ' Variable editor ' puedo ver que hay en cada fila

[13,10,9,11,12]
[13,8,6,12]
[8,6,5,4,7]
[12,6,5,2,11]
[13,8,7,3,10]
[5,2,1,4]
[7,3,1,4]
[11,2,1,9]
[10,3,1,9]

pero lo que yo queria decir era que mi matric C solo tiene una única columna

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

crear una matriz a partir de otra pere eliminando las filas que contengan un 1

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 05/05/2012 15:49:30
Hola
Sinceramente no entiendo que es lo quieres preguntar.
Ademas me parece q no tienes claro que es una matriz.
Una matriz es una objeto que tiene una cantidad de filas y una cantidad de columnas.
Ademas la cantidad de elementos de todas las filas es constante, y la cantidad de elementos de todas las columnas tambien es contante. Por lo tanto . Lo sguiente
[13,10,9,11,12]
[13,8,6,12]
[8,6,5,4,7]
[12,6,5,2,11]
[13,8,7,3,10]
[5,2,1,4]
[7,3,1,4]
[11,2,1,9]
[10,3,1,9]

que haz escrito,no es matriz.. Quizas por eso no he te contestado acertadameante.
Mejora tu pregunta y trata buscar mas informacion sobre matrices, ademas las llaves se usan cuandos los elmentos son celdas. Tampoco dices de donde proviene tu datos. Uno asume que son tiplos double por la forma como estas preguntando.
Conosco matlab, el problema está en la forma como estas preguntando.





Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

http://matlabcaballero.blogspot.com
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

crear una matriz a partir de otra pere eliminando las filas que contengan un 1

Publicado por anonimo (3 intervenciones) el 05/05/2012 16:03:47
Lo siento , mira los datos me provienen de aqui :

vor =

1.0e+003 *

-0.4000 5.0000
0 4.7000
0.4000 4.4000
0.1000 5.1000
-0.2000 4.4000
1.2969 6.2777
1.2969 3.2777
-1.4453 6.2777
-1.4453 3.2777

una vez tengo esto , donde la primera columna de vor son las posicions 'x' y la segunda columna posiciones 'y'

hago servir voronoin de la siguiente forma :

[V,C]=voronoin(vor);

y entonces lo que me piden es que cree una 'cosa' igual que lo que obtengo en C pero sin las filas en las q tengo valores 1, lo que me dices de cels me suena bastante , podria ser que si que fuera eso

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

crear una matriz a partir de otra pere eliminando las filas que contengan un 1

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 05/05/2012 21:53:34
HOla.
Bueno deberias poner mas información. Ya que el vor nose sabe de donde proviene. Ademas la funcion voronoin como funciona. Si desea copia tu codigo, para ver lo quieres hacer y a poder ayuarte con mas certeza.

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

http://matlabcaballero.blogspot.com
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