draw principal directions on a plot

4 次查看(过去 30 天)
Jay
Jay 2014-5-8
I am trying to draw principal directions from strain tensors on a plot. I attached some part of my code.
for j=1:15 ..
for k=1:(sizetemp(1,2)-1)
..
% e2_j_k is 2 X 2 strain tensors.
[V,D] = eig(e2_j_k);
if (D(1,1) > D(2,2))
eigen_j_k = D(1,1);
p= [V(1,1);V(2,1)];
if (V(2,1) < 0)
theta_j_k = -acosd(dot([1 0],p));
else
theta_j_k = acosd(dot([1 0],p));
end
else
eigen_j_k = D(2,2);
p= [V(1,2);V(2,2)];
if (V(2,2) < 0)
theta_j_k = -acosd(dot([1 0],p));
else
theta_j_k = acosd(dot([1 0],p));
end
end
eval(sprintf('e_%d_%d =e_j_k;',j,k));
eval(sprintf('eigen_%d_%d = eigen_j_k',j,k));
eval(sprintf('theta_%d_%d = theta_j_k',j,k));
% I already know xc and zc.
xc(j,k) = xx(1,k);
zc(j,k) = xz(1,k);
eigen(j,k) = eigen_j_k;
theta(j,k) = theta_j_k;
% xc2 and zc2 are new points to draw lines representing principal directions.
xc2(j,k) = xc(j,k) + 0.3*cosd(theta(j,k));
zc2(j,k) = zc(j,k) + 0.3*sind(theta(j,k));
figure(6);
plot([xc(j,k),xc2(j,k)],[zc(j,k),zc2(j,k)]);
hold on;
end
end
======================================
I know what results are supposed to be, but I don't get the reasonable results with this code. Can you see anything that I am doing wrong? Or do you have any suggestions for different method? I would appreciate any help. Thanks,
Jay

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by