vector function takes vector input ?
1 view (last 30 days)
Show older comments
Nora Khaled
on 10 Feb 2019
Commented: Star Strider
on 13 Feb 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 Comments
Accepted Answer
Star Strider
on 10 Feb 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 Comments
More Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements 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!