How expand a matrix?
    3 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
How we can expand matrix A to B? each element of matrix A is equal to sum of each B columns. (step of 3)
A=
[1 5 8 12 7 5 2 1]
to B=
1 3 3 3 3 3 2 1
0 2 3 3 3 2 0 0
0 0 2 3 1 0 0 0
0 0 0 3 0 0 0 0 
0 0 0 0 0 0 0 0
4 comentarios
Respuesta aceptada
  jgg
      
 el 23 de En. de 2016
        
      Editada: jgg
      
 el 23 de En. de 2016
  
      This should work
 A = [1 5 8 12 7 5 2 1];
 floors = floor(A./3);
 C = cumsum(3.*ones(max(floors)+1,length(A)),1)
 A_p = repmat(A,max(floors)+1,1);
 res = 3.*(C <= A_p);
 remainder = A - sum(res);
 r = cellfun(@(row) find(row == 0, 1, 'first'), num2cell(res,1));
 ind = sub2ind(size(res),r,[1:length(A)]);
 res(ind) = remainder;
Más respuestas (0)
Ver también
Categorías
				Más información sobre Interpolation en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


