plot to the function
13 次查看(过去 30 天)
显示 更早的评论
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/577942/image.png)
This is function
when r 0 to 3
when z 0, 0.03, 0.2, 0.5, 1,2
can you help me plot?
do i use vector or for loop or calculate each part and put in matlab?
0 个评论
采纳的回答
KALYAN ACHARJYA
2021-4-9
编辑:KALYAN ACHARJYA
2021-4-9
Hint:
z=[0, 0.03, 0.2, 0.5, 1,2];
r=0:0.01:3;
for i=1:length(z)
eq=..... % Here z(i)
plot(eq); % r vs. eq
hold on;
end
Add legend for z values
0 个评论
更多回答(1 个)
DGM
2021-4-9
If you're using a relatively new version, this should work. Avoid loops where possible. In this case, you don't need any.
r = linspace(0,3,20); % use a fine vector for this one
z = [0 0.03 0.2 0.5 1 2]'; % salient values, but transposed
% now we are doing elementwise math with row and col vectors
% our solution is now no longer a vector
% each row of f corresponds to one value of z
% note that doing this directly only works in R2016b or newer
% this could otherwise be done using a loop or bsxfun()
f = r.^2.*sqrt(1+(2*z.*r).^2) ./ sqrt((1+r.^2).^2 + (2*z.*r).^2);
clf
h = plot(r,f); grid on
% in order to get the zeta values in the legend automatically
aa=num2cell(z);
tagfun=@(x) sprintf('\\zeta = %2.2f',x)
legend(h,cellfun(tagfun,aa,'UniformOutput',false),'location','northwest')
xlabel('tony the tiger''s favorite letter')
ylabel('cereal consumed')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/577967/image.png)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Legend 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!