Why this loop is executing 4 times?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
% For plane slider: H = Ho + a(1-x)
Ho = 1;
alpha = 0.1;
eps = 0.1;
a = 1.0;
lbar = 0.1;
SIGMA = 0:0.05:0.15;
sigma = zeros(1,length(SIGMA));
for j = 1:length(SIGMA)
sigma = SIGMA(j);
H = @(x) Ho + a*(1 - x); % For plane slider: H = Ho + a(1-x)
G1 = @(x) H(x).^3 + 3 .* H(x).^2 .* alpha + 3 .* H(x) .* alpha^2 + 3 .* H(x) .* sigma^2 + eps + 3*sigma^2*alpha + alpha^3 - 12*lbar^2 .* (H(x) + alpha);
G2 = @(x) 24 * lbar^3 .* tanh(H(x)./(2*lbar));
G3 = @(x) (12*lbar^2*alpha - eps - alpha^3 - 3*sigma^2*alpha) .* (1 - (tanh(H(x)./(2*lbar))).^2);
G = @(x) G1(x) + G2(x) + G3(x);
Hm1 = @(x) H(x).* (1 ./ G(x));
Hm2 = @(x) (1 ./ G(x));
IntHm1 = integral(Hm1,0,1);
IntHm2 = integral(Hm2,0,1);
Hm = IntHm1 / IntHm2;
P1 = @(x) 6 .* (1 ./ G(x)) .* (H(x) - Hm);
P2 = @(x) integral(P1,0,x);
% Calculating dimensionless load carrying capacity(W):
W(j) = integral(P2,0,1, 'ArrayValued', true)
% Calculating non dimensional Frictional Force(F):
F1 = @(x) (H(x).* P1(x)) ./2 + (1 ./ H(x));
F(j) = integral(F1,0,1)
% Calculating coefficient of friction(f):
f(j) = F(j)/W(j)
% Calculating non dimensional temperature rise(deltaT):
deltaT(j) = F(j)/Hm
% Calculating the center of pressure(Xbar):
Xbar1 = @(x) P2(x) .* x;
Xbar(j) = integral(Xbar1, 0, 1, 'ArrayValued', true)/W(j)
end
0 commentaires
Réponse acceptée
Voss
le 7 Juin 2022
SIGMA is of size 1-by-4, and the loop goes from 1 to length(SIGMA) (which is 4), so what else would you expect?
SIGMA = 0:0.05:0.15 % 1-by-4
for j = 1:length(SIGMA) % 1:4
disp(j)
end
4 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices 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!