substitute each element of a vector into a matrix without using loop
    7 views (last 30 days)
  
       Show older comments
    
    AllKindsofMath AllKinds
 on 19 Nov 2013
  
    
    
    
    
    Answered: Alfonso Nieto-Castanon
      
 on 20 Nov 2013
            Hi I want to substitute each element of vector1 into 'x' in matrix1 and store each matrix in an array without using a loop. Please tell me how.
vector1=[1:1:10];
matrix1=[4*x 5*x ; 4*x 2*x];
Thanks in advance.
0 Comments
Accepted Answer
  Jan
      
 on 19 Nov 2013
        Like this?
 vector = 1:1:10;
 vector = reshape( vector, [1, 1, numel(vector)] ); 
 one_vector = ones( 1, 1, numel(vector) );
 matrix = [4 * vector, 5 * one_vector; 4 * one_vector, 2 * vector ];
5 Comments
  Jan
      
 on 20 Nov 2013
				Not as far as I can see. You will probably have to iterate over the third dimension.
More Answers (3)
  Sean de Wolski
      
      
 on 19 Nov 2013
        So:
vector1=[1:1:10];
x = vector1;
matrix1=[4*x 5*x ; 4*x 2*x];
Or is x symbolic?
clear x;
syms x
matrix1=[4*x 5*x ; 4*x 2*x];
matrix1 = subs(matrix1,x,vector1)
5 Comments
  Jan
      
 on 19 Nov 2013
        Maybe something like the following?
 matrix = [4, 5; 4, 2]; 
 [p, q] = size( matrix ); 
 vector = 1:1:10; 
 matrix = repmat( matrix(:), 1, numel( vector ) ); 
 matrix = matrix .* repmat( vector, p*q, 1 ); 
 matrix = reshape( matrix, p, q, numel( vector ) );
This gives you a 3d matrix, where each layer contains the specified matrix, mulitplied by one entry in vector
  Alfonso Nieto-Castanon
      
 on 20 Nov 2013
        perhaps something like:
 f = @(x)[4*x 5 ; 4 2*x];             % Matrix in functional form
 vector = 1:10;                       % Your vector of values for 'x'
 matrix = arrayfun(f,vector,'uni',0); % A cell array of matrices
 values = cellfun(@det,matrix);       % Determinant of each of those matrices
0 Comments
See Also
Categories
				Find more on Creating and Concatenating Matrices in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


