How to place a value in a function
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I wrote down a code and I want to place F_x(theta=60) to get the answer . How to do it.
Thanks for the helpers and Happy New Year :)
K_t=750;
K_r=250;
b=5;
f_z=0.1;
theta=0:360 ;
for i = 1: length(theta)
t90 = mod(theta(i), 90);
if (t90 >= 60 & t90 <= 90)
F_x(i)=0;
F_y(i)=0;
F(i)=0;
else
st90 = sind(t90);
ct90 = cosd(t90);
h_cut = f_z * st90;
F_r=K_r*b*h_cut;
F_t=K_t*b*h_cut;
F_x(i) = abs(-F_t .* ct90 - F_r .* st90);
F_y(i) = F_t .* st90 - F_r .* ct90;
F(i)=sqrt((F_x(i)).^2+(F_y(i)).^2);
end
end
plot(theta,F_x,'--r',theta,F_y,'--b',theta,F,'k' )
ylim([0 350])
grid on
legend('F_x' ,'F_y','F')
title('The components of the forces as a function of the angle of chip in the Up milling');
xlabel('theta [deg]');
ylabel('Force [N]');
F_x(theta=60) =?? %%%%%%%% Here help
Réponse acceptée
Stephen23
le 31 Déc 2021
Modifié(e) : Stephen23
le 31 Déc 2021
F_x is an array, not a function (in the MATLAB sense: https://www.mathworks.com/help/matlab/function-basics.html)
To access elements of an array you can use simple logical indexing:
K_t=750;
K_r=250;
b=5;
f_z=0.1;
theta=0:360 ;
for i = 1: length(theta)
t90 = mod(theta(i), 90);
if (t90 >= 60 & t90 <= 90)
F_x(i)=0;
F_y(i)=0;
F(i)=0;
else
st90 = sind(t90);
ct90 = cosd(t90);
h_cut = f_z * st90;
F_r=K_r*b*h_cut;
F_t=K_t*b*h_cut;
F_x(i) = abs(-F_t .* ct90 - F_r .* st90);
F_y(i) = F_t .* st90 - F_r .* ct90;
F(i)=sqrt((F_x(i)).^2+(F_y(i)).^2);
end
end
plot(theta,F_x,'--r',theta,F_y,'--b',theta,F,'k' )
ylim([0 350])
grid on
legend('F_x' ,'F_y','F')
title('The components of the forces as a function of the angle of chip in the Up milling');
xlabel('theta [deg]');
ylabel('Force [N]');
F_x(theta==60)
5 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Startup and Shutdown dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!