Matlab 版 (精华区)

发信人: hahn (有奇☆闭关造文中), 信区: Matlab
标  题: [合集] 怎么把solve解出来的字符表达式转成数值?
发信站: 哈工大紫丁香 (Wed Oct 11 19:20:24 2006), 站内

────────────────────────────────────────
  hotice (风间草-要做影视制作人)   于  (Thu Jun  1 10:24:55 2006)  说道:

比如下面的简单方程:

s1,s2都是简单的浮点数值矩阵,这个程序的目的是求出s1,s2对应点的比值,分别放在
k1,k2里面。但现在给出的都是表达式。怎样让k1,k2里是想要的浮点值?

for i=1:32
    for j=1:32

        d1=s1(i,j) ;
        d2=s2(i,j) ;
        z=d1/d2 ;

        ss=solve('x+y=1','x/y=z') ;

        k1(i,j)=ss.x ;
        k2(i,j)=ss.y ;    

    end
end


────────────────────────────────────────
  feifeifool (爱芳)                于  (Thu Jun  1 10:40:53 2006)  说道:

vpa
【 在 hotice (风间草-要做影视制作人) 的大作中提到: 】
: 比如下面的简单方程:
: s1,s2都是简单的浮点数值矩阵,这个程序的目的是求出s1,s2对应点的比值,分别放在
: k1,k2里面。但现在给出的都是表达式。怎样让k1,k2里是想要的浮点值?
: ...................



────────────────────────────────────────
  zjliu (秋天的萝卜)               于  (Thu Jun  1 11:15:39 2006)  说道:

double可能也很管用
【 在 feifeifool (爱芳) 的大作中提到: 】
: vpa




────────────────────────────────────────
  hotice (风间草-要做影视制作人)   于  (Thu Jun  1 12:22:48 2006)  说道:

不知道是哪里出了问题,总是不认识z~

   i=3 ;
   j=3 ;

   ss=solve('x+y=1','x/y=z') ;
   z=s1(i,j)/s2(i,j) ;        

   k1(i,j)=double(ss.x) ;
   k2(i,j)=double(ss.y) ;    

运行结果如下:

??? Undefined function or variable 'z'.

Error in ==> D:\MATLAB6p5\toolbox\symbolic\@sym\double.m
On line 45  ==> D = reshape(eval(X),m,n);


【 在 zjliu (秋天的萝卜) 的大作中提到: 】
: double可能也很管用




────────────────────────────────────────
  zjliu (秋天的萝卜)               于  (Thu Jun  1 12:35:15 2006)  说道:

The original program can be written as follows

s1=rand(32);
s2=rand(32);
ss=solve('x+y=1','x/y=z','x','y');
z=s1./s2;
k1=subs(ss.x,z);
k2=subs(ss.y,z);


【 在 hotice (风间草-要做影视制作人) 的大作中提到: 】
: 不知道是哪里出了问题,总是不认识z~
:    i=3 ;
:    j=3 ;
: ...................



────────────────────────────────────────
  hotice (风间草-要做影视制作人)   于  (Thu Jun  1 13:17:03 2006)  说道:

谢谢萝卜,问题解决~:)

【 在 zjliu (秋天的萝卜) 的大作中提到: 】
: The original program can be written as follows

: s1=rand(32);
: ...................



────────────────────────────────────────
  hahn (gemini&&sar&&gre)          于  (Thu Jun  1 19:59:10 2006)  说道:

  help solve
  S=SOLVE('eqn1','eqn2',...,'eqnN','var1,var2,...,varN')
  注意如果返回值是结构体变量,一定要用var中说明
  否则返回值设成相应的变量[x,y]

【 在 hotice (风间草-要做影视制作人) 的大作中提到: 】
: 比如下面的简单方程:
: s1,s2都是简单的浮点数值矩阵,这个程序的目的是求出s1,s2对应点的比值,分别放在
: k1,k2里面。但现在给出的都是表达式。怎样让k1,k2里是想要的浮点值?
: ...................



────────────────────────────────────────
  keycat (keycat)                  于  (Mon Jun  5 14:42:50 2006)  说道:

vpa
【 在 hotice (风间草-要做影视制作人) 的大作中提到: 】
: 比如下面的简单方程:
: s1,s2都是简单的浮点数值矩阵,这个程序的目的是求出s1,s2对应点的比值,分别放在

: k1,k2里面。但现在给出的都是表达式。怎样让k1,k2里是想要的浮点值?
: for i=1:32
:     for j=1:32
:         d1=s1(i,j) ;
:         d2=s2(i,j) ;
:         z=d1/d2 ;
: ...................





[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.496毫秒