if i have a i*j matrix(with random numbers ), then how can i make the sum of first row = d(say d= 5).
    10 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
HELLO,
I want to make random number matrix having the sum of first row elements equal to d (a positive number). I tried to use Roger Stafford's randomfixedsum for first row but was not successful.
thank you
Resh
1 comentario
Respuestas (3)
  Orion
 el 19 de Ag. de 2014
        
      Editada: Orion
 el 19 de Ag. de 2014
  
      You can do this: http://www.mathworks.com/matlabcentral/newsreader/view_thread/318632 And you don't need a value constraint in the first line.
0 comentarios
  Aykut Satici
    
 el 19 de Ag. de 2014
        I understand that you would like to get a matrix A with m rows and n columns, and your constraint is that the first row has to sum to d
This means you can arbitrarily select (n-1) of these numbers such that their sum is less than d and then assign the last one such that the whole sum is d.
As a result, one way of doing this would be to generate (n-1) random numbers all of which is smaller or equal to d/(n-1) and then select the last one as d minus the sum of the previous (n-1). See the code below:
m = 4;      % number of rows
n = 7;      % number of columns
d = 5;      % desired sum of the first column
a = 10/17;   % lower bound on the elements of the first row of A
% Generate the matrix
A = zeros(m,n);                             % Create a matrix of zeros
                                            % of dimension m-by-n
A(2:m,:) = rand(m-1,n);                     % Populate the elements of the
                                            % matrix through rows 2 to m
                                            % with random numbers
A(1,1:n-1) = a + (d/(n-1)-a)*rand(1,n-1);   % Generate (n-1) random numbers
                                            % between a and d/(n-1)
                                            % (see "help rand")
A(1,n) = d - sum(A(1,1:n-1));
2 comentarios
  Guillaume
      
      
 el 19 de Ag. de 2014
				What you're asking now is completely different from what you've asked originally. You should create a new question.
Ver también
Categorías
				Más información sobre Creating and Concatenating Matrices 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!



