How to use fplot to plot a function file with single input mutiple outputs?
2 views (last 30 days)
Show older comments
Hello, I have a function file that contains 5 outputs and one input. I would like to plot the outputs on a single plot against a range of input values. fplot works nicely when I have a single output but does not work for multiple outputs (it doesn't plot all 5 outputs). Please help me. Thank you
0 Comments
Answers (1)
Guillaume
on 3 Nov 2015
You'll have to explain what 'does not work for multiple outputs' mean exactly:
fn = @(x) [sin(x), cos(x), sin(x.^2), cos(x.^2), sin(x) + cos(x)]; %function with 5 outputs
fplot(fn, [-pi, pi])
works perfectly well. Do you get an error? If so, what is the error?
2 Comments
Guillaume
on 3 Nov 2015
The outputs need to be concatenated into a row vector for fplot to work.
You can either rewrite your function as:
function [x(:, 1), x(:, 2), x(:, 3)] = myfunction(A)
%...
end
Or use an intermediary function:
function x = catmyfunction(A)
[x(:, 1), x(:, 2), x(:, 3)] = myfunction(A);
end
then
fplot(@catmyfunction, [0.2, 0.5]);
See Also
Categories
Find more on Linear Algebra 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!