| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7462 人关注过本帖
标题:[求助]怎样直接将数值变量直接代入符号表达式进行数值计算
只看楼主 加入收藏
yanhe3302
Rank: 1
等 级:新手上路
威 望:1
帖 子:39
专家分:0
注 册:2006-7-18
收藏
 问题点数:0 回复次数:16 
[求助]怎样直接将数值变量直接代入符号表达式进行数值计算

简单举个例子,有程序
syms fy1
g=0.75-0.24*sin(3*fy1+3*pi/2);
f=atan(t);
delta1=compose(f,g);
delta1_fy1=diff(delta1,'fy1')

s1=sqrt((52*delta1_fy1).^2+(52*sin(delta1)).^2)
得到结果:
54/25*(324*sin(3*fy1)^2/(1+(3/4+6/25*cos(3*fy1))^2)^2+625*(3/4+6/25*cos(3*fy1))^2/(1+(3/4+6/25*cos(3*fy1))^2))^(1/2)
有没有什么方法将变量fy1的数值直接代入计算,或者将上述的表达式转化为“. * ”、“. / ”、“. ^ ”形式。
我实际用到的运算表达式很长,每次都是手工加“.”来转化运算符,再代入数值型变量计算,很麻烦,工程太大了,谁能救我出苦海啊,不胜感激!!!!

搜索更多相关主题的帖子: 数值计算 代入 变量 符号 表达 
2006-08-26 17:24
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 

把你的结果用不个变量来保存(如:a)
string b ="";
b = a.Replace("\*","\.\*);
string c = "";
c = b.Replace("\/","\.\/")'
string d = "";
d = c.Replace("\^","\.\^");
d就是你需要的.再把d转换成算式形就可以了.
(也可以用数组.循环判断,并改正)


一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-26 20:54
yanhe3302
Rank: 1
等 级:新手上路
威 望:1
帖 子:39
专家分:0
注 册:2006-7-18
收藏
得分:0 

6个句子就能解决的问题,每次都都要花20分钟。谢谢,谢谢!!!!!

什么函数可以将string转化成算式形啊

2006-08-27 14:18
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
int.Parse("你要转换的string形");

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-27 15:42
yanhe3302
Rank: 1
等 级:新手上路
威 望:1
帖 子:39
专家分:0
注 册:2006-7-18
收藏
得分:0 
多谢你出手救我啊,这么快就能得到答复,终于出苦海了
2006-08-27 19:40
yanhe3302
Rank: 1
等 级:新手上路
威 望:1
帖 子:39
专家分:0
注 册:2006-7-18
收藏
得分:0 
syms fy1 ;
fy2=3*fy1/4+0.08*cos(3*fy1+3*pi/2);
g=0.75-0.24*sin(3*fy1+3*pi/2);
delta1=atan(g);
delta2=pi/2-delta1;
z2=52*cos(fy2)*sin(delta2);
y2=52*sin(fy2)*sin(delta2);
x2=52*cos(delta2);
delta2_fy1=diff(delta2,'fy1') ;
char a="";
a=sqrt((52*delta2_fy1)^2+(52*sin(delta2)*g)^2)
char b ="";
b = a.Replace("\*","\.\*");
char c = "";
c = b.Replace("\/","\.\/");
char d = "";
d = c.Replace("\^","\.\^")
这样写没错吧,但是提示错误:
??? Error: File: D:\ProgramFiles\matlab\work\Untitled4.m Line: 13 Column: 15
Missing variable or function.
还要请你指正啊
2006-08-27 21:26
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
怎么用char形呢?[CODE]sqrt((52*delta2_fy1)^2+(52*sin(delta2)*g)^2)[/CODE]这个好像不能用char吧,呵呵.
要么就用数组.

[此贴子已经被作者于2006-8-27 22:06:11编辑过]


一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-27 22:05
yanhe3302
Rank: 1
等 级:新手上路
威 望:1
帖 子:39
专家分:0
注 册:2006-7-18
收藏
得分:0 

我用的是6.5版本的matlab,系统提示说string已经废弃了,可换为char形

2006-08-28 08:55
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
那就用数组吧.

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-28 11:08
yanhe3302
Rank: 1
等 级:新手上路
威 望:1
帖 子:39
专家分:0
注 册:2006-7-18
收藏
得分:0 

试试看,谢谢你的细心指导,一直跟贴[em34

2006-08-30 20:27
快速回复:[求助]怎样直接将数值变量直接代入符号表达式进行数值计算
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033777 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved