Matlab - problema con una operación con matrices

   
Vista:

problema con una operación con matrices

Publicado por vo0o_o0ov (4 intervenciones) el 11/05/2008 22:11:45
Hola me gustaría saber como puedo hacer en matlab lo siguiente:

Tengo la matriz siguiente:

3 0.025
6 1.236
10 0.231

Lo que quiero es rellenar con ceros los "huecos" entre filas, atendiendo a los subíndices de la columna 1, de manera que el resultado sea:

0 0
0 0
1 0.025
0 0
0 0
1 1.236
0 0
0 0
0 0
1 0.231

¿Cómo puedo conseguir esto sin un bucle? En la práctica son demasiados datos como para poner bucles así que si hubiera un método directo, sería lo ideal.

Gracias por adelantado.
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

RE:problema con una operación con matrices

Publicado por Kike (304 intervenciones) el 12/05/2008 04:07:07
Creo que del bucle no te salvas.


M=[3 0.025;...
6 1.236;...
10 0.231];

[filas,columnas]=size(M);

indices=M(:,1)

matriz=zeros(max(indices),2);

for k=1:filas
matriz(indices(k),:)=M(k,:);
end % fin de for

matriz
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

RE:problema con una operación con matrices

Publicado por Julian C. (75 intervenciones) el 12/05/2008 16:19:35
Hola, prueba de esta forma...

M=[3 0.025;...
6 1.236;...
10 0.231];
%
[f c]=size(M);
v=max(M(:,1));
%
res(M(:,1),1)=1;
res(M(:,1),2)=M(:,2);

Saludos, Julian...
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

RE:problema con una operación con matrices

Publicado por Julian C. (75 intervenciones) el 12/05/2008 17:33:58
Hola, del codigo anterior, puedes omitir las dos siguientes instrucciones:

[f c]=size(M);
v=max(M(:,1));

Estas instrucciones las usaba para determinar el tamaño de la matriz resultante, pero con las dos ultimas instrucciones se consigue esto, asi que no son necesarias.

Saludos, Julian...
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