vector function takes vector input ?
    9 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Nora Khaled
      
 el 10 de Feb. de 2019
  
    
    
    
    
    Comentada: Star Strider
      
      
 el 13 de Feb. de 2019
            Hello !
I am having truble inserting vectors as an input to a function that is a vector 
what I did is
I defined a function as 
gradient=@(x) [1;x;x^2;x^3];
then I need to input a vector to it. like this 
gradient([2 ;3 ; 4])
or
gradient([2  3  4])
so the result I am hoping for is a matrix where each column represent a function (1,x,x^2,x^3) 
and each row is the value of the function at each point in the input vector. 
so it would be some thing like: 
1  2    4   8
1  3   9  27
1  4 16  46
I have done this using loop. but since the data I am dealing with is large this takes so long and I would brefer a method that does it in a vector form. 
0 comentarios
Respuesta aceptada
  Star Strider
      
      
 el 10 de Feb. de 2019
        First, gradient is a quite useful built-in MATLAB function, so name your function something different.  
Second, your function needs some help.  
Try this: 
myGradient = @(x) [ones(size(x(:))), x(:), x(:).^2, x(:).^3];
Y = myGradient([2 3 4])
I will leave it to you to explore the details of colon operator single-indexing (it forces ‘x’ here to be a column vector), and the necessity to use the ones function.  
Y =
     1     2     4     8
     1     3     9    27
     1     4    16    64
4 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Loops and Conditional Statements 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!

