Matlab - Redimensionar vector, organizar de manera ascendente

   
Vista:

Redimensionar vector, organizar de manera ascendente

Publicado por AndresValencia (1 intervención) el 19/09/2017 19:21:37
Buenas tardes,

Es que tengo una gran duda y he consultado en todas las paginas y siempre me ecuentro con la funcion reshape la cual no me sirve en este caso, mi duda es.

Por ejemplo tengo un vector

A=[1,3,4,6,8]

y me gustaria redimensionar ese vector a uno de 1x10 organizarlos, de forma ascendente y que los espacios vacios sean llenados con ceros de esta manera

B=[1,0,3,4,0,6,0,8,0,0]

en lo primero que pense fue en crear un ciclo for y comparar termino a termino e ir creando un vector de 0s y 1s, y ya desde ahi es mas facil realizar la conversion a 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 David Correa

Redimensionar vector, organizar de manera ascendente

Publicado por David Correa correa.dave30@gmail.com (1032 intervenciones) el 20/09/2017 12:13:10
Hola Andres;

Existen varias formas como podrías generar el vector,

La forma más simple sería:

1
2
3
4
5
6
7
8
9
clear all,clc
 
redi = 12;
 
A=[1,3,4,6,8]
 
C = zeros(1,redi)
 
C(A) = A

Obtienes

1
C=[1,0,3,4,0,6,0,8,0,0]
Un ejemplo con incrementos constantes sería el siguiente;
1
2
3
4
5
6
7
8
9
10
11
12
13
clear all,clc
 
redi = 12;
 
A=[1,3,4,6,8]
 
n = length(A);
 
B = zeros(1,redi)
 
inc = floor(redi/n)
 
B(1:inc:inc*(n)) = A

Con el llegarías a obtener los siguiente:

1
B =     1     0     3     0     4     0     6     0     8     0     0     0

Espero ser de alguna ayuda.

Saludos
David Correa Chilón
correa.dave30@gmail.com
dcorrea@fismatlab.org
Servicios de Programación Matlab
http://fismatlab.org​​
​​​ https://www.facebook.com/fismatlabperu​​
http://fismatlab.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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Redimensionar vector, organizar de manera ascendente

Publicado por JOSE JEREMIAS CABALLERO (4442 intervenciones) el 20/09/2017 20:27:46
1
2
3
4
5
6
>> A=[1,3,4,6,8]
A =
     1     3     4     6     8
>> B(A)=A
B =
     1     0     3     4     0     6     0     8     0     0

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