compacting a large number of plot lines
1 次查看(过去 30 天)
显示 更早的评论
func0=@(x) 5/3*cosd(0)-5/2*cosd(x)+11/6-cosd(40-x);
[phi0 valf]=fzero(func0,0);
func20=@(x) 5/3*cosd(20)-5/2*cosd(x)+11/6-cosd(40-x);
[phi20 valf]=fzero(func20,20);
func40=@(x) 5/3*cosd(40)-5/2*cosd(x)+11/6-cosd(40-x);
[phi40 valf]=fzero(func40,40);
func60=@(x) 5/3*cosd(60)-5/2*cosd(x)+11/6-cosd(40-x);
[phi60 valf]=fzero(func60,60);
func80=@(x) 5/3*cosd(80)-5/2*cosd(x)+11/6-cosd(40-x);
[phi80 valf]=fzero(func80,80);
func100=@(x) 5/3*cosd(100)-5/2*cosd(x)+11/6-cosd(40-x);
[phi100 valf]=fzero(func40,100);
plot([0 20 40 60 80 100],[phi0 phi20 phi40 phi60 phi80 phi100]);grid on;
all functioning ,but how can i do this from 0 to 360 degrees without having to write a large number of lines ?
0 个评论
采纳的回答
Subhadeep Koley
2020-12-16
ind = 1;
angleValues = 0:20:360; % Modify angle values as per your requirement
phiValues = zeros(1, numel(angleValues));
for idx = angleValues
func = @(x) 5/3*cosd(idx)-5/2*cosd(x)+11/6-cosd(40-x);
phiValues(ind) = fzero(func, idx);
ind = ind+1;
end
figure
plot(angleValues, phiValues)
grid on
3 个评论
Subhadeep Koley
2020-12-17
Use this code snippet.
ind = 1;
angleValues = 0:10:360;
phiValues = zeros(1, numel(angleValues));
for idx = angleValues
func = @(x) 5/3*cosd(idx)-5/2*cosd(x) + 11/6-cosd(idx-x);
phiValues(ind) = fzero(func, idx);
ind = ind+1;
end
figure
plot(angleValues, phiValues)
grid on
axis tight
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/463470/image.jpeg)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Migrate GUIDE Apps 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!