MATLAB Answers

How to obtain an array of constant values from vector valued anonymous functions

15 views (last 30 days)
Hello Everyone,
I have an anonymous function whose result is a constant number; when I call it passing a vector variable as input I obtain a scalar constant instead of a vector of constants. See the following example
>> f=@(x) 3.5; v=0:10; y=f(v)
y =
3.5000
I wonder if there is a simple solution allowing a vector with eleven components (3.5's) in y to be obtained.
I know it's an unusual need, but the associated output variable is one of many others based on similar (non-constant) functions, whose results have to be plotted, so the size of their outputs must be correct. Of course, I'd have several possibilities to overcome this without anonymous functions, but it would be not very elegant. When I realized it, I thought it may be a bug, though a very minor one.
Thank you in advance, I hope someone can help.

Accepted Answer

the cyclist
the cyclist on 10 Feb 2021
f=@(x) 3.5 * ones(size(x));
v=0:10;
y=f(v)
y = 1×11
3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000 3.5000

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!