24小时热门版块排行榜    

CyRhmU.jpeg
查看: 500  |  回复: 4
当前主题已经存档。

zhanghcui

木虫 (小有名气)

[交流] 【求助】 matlab 符号转化double

各位高人, 怎样把符号表达式转变为double表达式
下面是我的主程序和出错提示:
syms x y z1 z2
m=3
n=3
h=0.0003;
w=0.0005;
a=0.0001
e=h/w
%z1=@pp
ff=sym(zeros(m,n))
for i=1:m
   %feval(z1,x,y,i)
   z1=x.^i+y.^i
    for j=1:n
       % z2=@pp
        %feval(z2,x,y,j)
        z2=x.^j+y.^j
        z1x=diff(z1,x)
        z2x=diff(z2,x)
        z1y=diff(z1,y)
        z2y=diff(z2,y)
        ff(i,j)=e^2*z1x*z2x+z1y*z2y
        ff(i,j)=char(ff(i,j))
        ff(i,j)=strrep(ff(i,j),'*','.*')
        ff(i,j)=strrep(ff(i,j),'/','./')
        ff(i,j)=strrep(ff(i,j),'\','.\')
        ff(i,j)=strrep(ff(i,j),'^','.^')
       ss=intout(ff(i,j),0,1,0,1)
    end
end
出错:
Warning: Inputs must be character arrays or cell arrays of strings.
> In zzz at 23
??? Error using ==> strrep
Conversion to double from sym is not possible.

Error in ==> zzz at 23
        ff(i,j)=strrep(ff(i,j),'*','.*')

[ Last edited by luoqiquan on 2009-12-19 at 18:14 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mingdong

荣誉版主 (知名作家)


xuefei06(金币+1,VIP+0):感谢参与并提意见
你好
数值仿真版开有matlab专贴,请参考:
http://muchong.com/bbs/viewthread.php?tid=759829&fpage=1
文献求助如果有链接问题,请虫友尽快与我联系!
2楼2008-12-04 16:50:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhanghcui

木虫 (小有名气)

谢谢,非常感谢!
3楼2008-12-05 13:06:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cutebear

新虫 (小有名气)

★ ★ ★ ★ ★
mingdong(金币+2,VIP+0):感谢您的帮助!
xuefei06(金币+3,VIP+0):感谢你给出这么详细的答案,希望对楼主有所帮助
syms x y z1 z2
m=3
n=3
h=0.0003;
w=0.0005;
a=0.0001
e=h/w
%z1=@pp
ff=sym(zeros(m,n))
for i=1:m
   %feval(z1,x,y,i)
   z1=x.^i+y.^i
    for j=1:n
       % z2=@pp
        %feval(z2,x,y,j)
        z2=x.^j+y.^j
        z1x=diff(z1,x)
        z2x=diff(z2,x)
        z1y=diff(z1,y)
        z2y=diff(z2,y)
        ff(i,j)=e^2*z1x*z2x+z1y*z2y
        ff(i,j)=char(ff(i,j))
        ff(i,j)=strrep(ff(i,j),'*','.*')
        ff(i,j)=strrep(ff(i,j),'/','./')
        ff(i,j)=strrep(ff(i,j),'\','.\')
        ff(i,j)=strrep(ff(i,j),'^','.^')
       ss=intout(ff(i,j),0,1,0,1)
    end
end
你去掉后面的几个转换

syms x y z1 z2
m=3
n=3
h=0.0003;
w=0.0005;
a=0.0001
e=h/w
%z1=@pp
ff=sym(zeros(m,n))
for i=1:m
   %feval(z1,x,y,i)
   z1=x.^i+y.^i
    for j=1:n
       % z2=@pp
        %feval(z2,x,y,j)
        z2=x.^j+y.^j
        z1x=diff(z1,x)
        z2x=diff(z2,x)
        z1y=diff(z1,y)
        z2y=diff(z2,y)
        ff(i,j)=e^2*z1x*z2x+z1y*z2y
        ff(i,j)=char(ff(i,j))

    end
end

输出结果是
ff =

[           34/25,     18/25*x+2*y, 27/25*x^2+3*y^2]
[     18/25*x+2*y, 36/25*x^2+4*y^2, 54/25*x^3+6*y^3]
[ 27/25*x^2+3*y^2, 54/25*x^3+6*y^3, 81/25*x^4+9*y^4]
不知道是不是你相要的,
你要是想吧*换成别的运算符号
你再做一个替代循环吧
另外intout有这个函数吗?你是不是写错了
4楼2008-12-05 15:16:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhanghcui

木虫 (小有名气)

谢谢 cutebear, 但是这样出来的ff是符号形式的,intout是我编写的一个数值积分子函数,而ff 是被积函数,这样没法积分
5楼2008-12-08 09:04:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhanghcui 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见