Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2013-11-29
帖子: 1
声望力: 0 ![]() |
![]()
我想在Matlab输出个一个6乘6的矩阵,元素是C(i,j)=(i+1)*(j+1)*alpha^(i+j),i=1到6,j=1到6,用for 循环语句, 我想让输出的这个矩阵中含有符号变量alpha。
以下是我目前的code, 主要是for 循环的 Cdo1 不对。 syms rho A h EI alpha Cd e m1=zeros(6); k1=zeros(6); Cdo1=zeros(6); for i = 1:6; for j=1:6; m1(i,j)=1./(i+j+3); k1(i,j)=i*(i+1)*j*(j+1)./(i+j-1); Cdo1(i,j)=(i+1)*(j+1)*alpha^(i+j); end end M=rho*A*h*m1; K=EI*h*k1; Cdo=2*Cd*e^2*Cdo1; 以下是matlab给出的错误原因: 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. Error in Problemone (line 9) Cdo1(i,j)=(i+1)*(j+1)*alpha^(i+j); |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2015-03-07
年龄: 30
帖子: 3
声望力: 0 ![]() |
![]()
那是因为 你一开始初始化矩阵的时候用的zeros函数创建的是数值矩阵!!你尝试不要初始化,当然这会造成额外的内存重分配时间 但是 你的矩阵不是很大 应该是可以接受的。
|
![]() |
![]() |