For loop with symbolic expressions

2 次查看(过去 30 天)
I am trying to make a for loop that put symbolic expressions inside a matrix ( in positions given by index of for loop) and i get this error:
??? The following error occurred converting from sym to double:
Error using ==> mupadmex
Error in MuPAD command: DOUBLE cannot convert the input expression into a double array.
If the input expression contains a symbolic variable, use the VPA function instead.
Can you help me ?
Thanks in advance,
  2 个评论
sixwwwwww
sixwwwwww 2013-10-10
Can you please share your code to locate the error?
rodrigo
rodrigo 2013-10-10
Yes, my code is above:
%%%%%%%%%%%%%%%%%%%%%%%%%
k=1; matriz_incognitas=zeros(6+4*k,1);
syms x syms theta L=2
Ni=1-(x/L) Nj=x/L
matriz_N=zeros(3,6+4*k);
for m=1:k
matriz_N(1,4+m-1)= 0
matriz_N(1,4+m+k-1)=sprintf(Ni*cos(k+1)*theta
matriz_N(2,4+m-1)= -Ni*sin(k+1)*theta*(1/(k+1))
matriz_N(2,4+m+k-1)= 0
matriz_N(3,4+m-1)= Ni*cos(k+1)*theta
matriz_N(3,4+m+k-1)= 0
matriz_N(1,4+m-1)= 0
matriz_N(1,4+m+k-1)=Nj*cos(k+1)*theta
matriz_N(2,4+m-1)= -Nj*sin(k+1)*theta*(1/(k+1))
matriz_N(2,4+m+k-1)= 0
matriz_N(3,4+m-1)= Nj*cos(k+1)*theta
matriz_N(3,4+m+k-1)= 0
end
%%%%%%%%%%%%%%%%%%%%%%%%%%

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2013-10-10
Do not initialize the matrix to zeros(): that requires numeric values instead of symbolic.
Try
matriz_N = sym(zeros(3, 6+4*k));

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by