How to use fplot to plot a function file with single input mutiple outputs?

1 次查看(过去 30 天)
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

回答(1 个)

Guillaume
Guillaume 2015-11-3
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 个评论
sara
sara 2015-11-3
I mean it only plots one of the outputs. So I have a function file with 3 outputs: function [ x, y, z] = myfunction( A )
and I would like to plot x, y, z with respect to A using fplot. When I do the following, only one of the outputs get plotted. hold on fplot('myfunction',[0.2 0.5])
Guillaume
Guillaume 2015-11-3
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]);

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by