how can i substitute number with symbol ?
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
shahin hashemi
le 16 Fév 2018
Modifié(e) : shahin hashemi
le 16 Fév 2018
dear all
i have code like below :
clc
clear all
N=4;
L=60e-3;
M=3.338e-3;
jx=5.743e-14;
E=2.1e11;
x = sym('x', [1 3*N], 'real');
for j=2:N+1
for i=j-1
f1(j)=(1-cos(x(3*i-2)))/x(3*i-2);
g1(j)=-(1-cos(x(3*i-1)))/x(3*i-1);
f2(j)=sin(x(3*i-2))/x(3*i-2);
g2(j)=sin(x(3*i-1))/x(3*i-1);
pl(:,j)=L*[f1(j) f2(j)*g1(j) f2(j)*g2(j)]';
Rl(:,:,j)=[cos(x(3*i))*cos(x(3*i-2)) -sin(x(3*i))*cos(x(3*i-2)) sin(x(3*i-2));cos(x(3*i))*sin(x(3*i-2))*sin(x(3*i-1))+sin(x(3*i))*cos(x(3*i-1)) -sin(x(3*i))*sin(x(3*i-2))*sin(x(3*i-1))+cos(x(3*i))*cos(x(3*i-1)) -cos(x(3*i-2))*sin(x(3*i-1));-cos(x(3*i))*sin(x(3*i-2))*cos(x(3*i-1))+sin(x(3*i))*sin(x(3*i-1)) sin(x(3*i))*sin(x(3*i-2))*cos(x(3*i-1))+cos(x(3*i))*sin(x(3*i-1)) cos(x(3*i-2))*cos(x(3*i-1))];
p(:,2)=pl(:,2);
end
end
R(:,:,2)=Rl(:,:,2);
R(:,:,1)=[1 0 0;0 1 0;0 0 1];
for i=3:N+1
R(:,:,i)=R(:,:,i-1)*Rl(:,:,i);
p(:,i)=p(:,i-1)+R(:,:,i-1)*pl(:,i);
end
for j=2:N+1
for i=1:N
for r=1:N
d1Pbeta(:,j,i)=diff(p(:,j),x(3*i-2));
d2Pbetabeta(:,j,i,r)=dot([-M*9.81 0 0],diff(d1Pbeta(:,j,i),x(3*r-2)));
end
end
end
for i=1:N
for r=1:N
for j=2:N+1
sigm(i,r)=(E*jx/L)+sum(d2Pbetabeta(:,j,i,r)');
end
end
end
here i want to replace x with number
x=[0.0495837022782378;3.96268247549320e-09;-4.78044641555791e-10;0.0854433755724521;2.89430795211353e-09;-1.43061297211777e-10;0.110831068380515;4.80530147316531e-09;-5.69420213726607e-10;0.125761304817654;1.09464269988965e-08;-4.73181277688372e-10]
but it doesnt work
and after that calculate eigenvalue of sigm
e=eig(sigm)
0 commentaires
Réponse acceptée
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur MATLAB Mobile Fundamentals dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!