compacting a large number of plot lines
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Opariuc Andrei
el 16 de Dic. de 2020
Comentada: Opariuc Andrei
el 17 de Dic. de 2020
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 comentarios
Respuesta aceptada
Subhadeep Koley
el 16 de Dic. de 2020
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 comentarios
Subhadeep Koley
el 17 de Dic. de 2020
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
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!