How to plot this function?
1 次查看(过去 30 天)
显示 更早的评论
I have a function that is "vectorized". I did that because I wanted to have one such function for each value of the parameter "a":
clc;
clear all;
tic;
a=[1/2,1/3,1/4];
p = @(x) 1/3.*(exp(x.^(a))-1)./(exp(x.^(a))+1) ;
I want to have the three plots (one for each value of "a") in the same figure. However, I am having trouble isolating each function for plotting. For instance, I expected that:
p1 = @(x) p(x,1,1)
would represent one of functions, but it doesn't. My other attempts have also failed. How can I get the desired result?
0 个评论
采纳的回答
Star Strider
2014-12-24
编辑:Star Strider
2014-12-24
The easiest way is to pass ‘a’ as a parameter as well:
a=[1/2,1/3,1/4];
p = @(x,a) 1/3.*(exp(x.^(a))-1)./(exp(x.^(a))+1) ;
p1 = p(x,a(1));
Not that within the function, ‘a’ is whatever you want it to be. If you define it as a parameter, it will not pick up the value of ‘a’ from the workspace.
4 个评论
Star Strider
2014-12-24
Thank you. I do my best!
Now I understand what you’re doing. If you only want it as a function of ‘x’, you have to specify it as you did:
p1 = @(x) p(x,a(1));
It all depends on how you want to call your function. There are at least a few ways to do it correctly, so choose the one that works best for you in your application. I chose the way I usually do it in my two versions of the plot call.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Function Creation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!