怎样给子程序的变量赋值?
我编了个程序,要求调用子程序后,给其中的变量赋值,然后再进行计算,谁告诉我怎么赋值呀?[ 本帖最后由 eight 于 2007-9-5 20:31 编辑 ] 原帖由 xiaoyuewei2001 于 2007-9-5 20:27 发表 http://www.chinavib.com/forum/images/common/back.gif
我编了个程序,要求调用子程序后,给其中的变量赋值,然后再进行计算,谁告诉我怎么赋值呀?
跟普通的C语言没有什么两样的,例子:
function y = myfun1(x)
a = 1;
b = 2;
c = myfun2(a,b);
function z = myfun2(u,v)
....
function WW_c_q=jifen(r,sta)
r_b=0.4; %m
r_d=0.2; %m
syms r x tao_i ii sta jj
R_i_r=(sin(tao_i*r)-sinh(tao_i*r))+(-sin(tao_i*(r_b-r_d))-...
sinh(tao_i*(r_b-r_d)))/(cos(tao_i*(r_b-r_d))+cosh(tao_i*(r_b-r_d)))*(cos(tao_i*r)-cosh(tao_i*r));
W_i_c=R_i_r.*cos((ii-1)*sta);
W_j_c=R_i_r.*cos((jj-1)*sta);
W_i_s=R_i_r*sin((ii-1)*sta);
W_j_s=R_i_r*sin((jj-1)*sta);
WW_c_q=[W_i_c+x*(diff(W_i_c,'r'));W_i_s+x*(diff(W_i_s,'r'));...
W_i_c*W_j_c;W_i_c*(diff(W_j_c,'r'))+(diff(W_i_c,'r'))*W_j_c;(diff(W_i_c,'r'))*(diff(W_j_c,'r'));W_i_s*W_j_s;...
W_i_s*(diff(W_j_s,'r'))+(diff(W_i_s,'r'))*W_j_s;(diff(W_i_s,'r'))*(diff(W_j_s,'r'))]
这是子程序
要得到其中的r=0.2,sta=0的结果,然后在应用到后面的结果中继续运算,该怎么弄?谢谢. function WW_c=fuzhi(r,sta)
r=0.2;
sta=0;
WW_c=jifen(r,sta);
赋值我是这样弄的,可是在MATLAB中显示不对.真是郁闷死了.麻烦高手给说一下! 原帖由 xiaoyuewei2001 于 2007-9-5 20:53 发表 http://www.chinavib.com/forum/images/common/back.gif
function WW_c=fuzhi(r,sta)
r=0.2;
sta=0;
WW_c=jifen(r,sta);
赋值我是这样弄的,可是在MATLAB中显示不对.真是郁闷死了.麻烦高手给说一下!
你的表达我没有看懂,我只能猜了:
function = jifen(r, sta) 我的意思就是把jifen(r, sta)个表达式里面的r和sta赋值,就这个意思,求新的表达式然后在总程序中用.就是这个意思,可我就是变量赋不进去. 将原问题贴一下吧.
另:function jifen(r,sta)中, r,sta你怎么又重新定义为符号变量了?
还有,function fuzhi(r,sta)中, r,sta怎么又重新赋值了?
从这点看,你的程序相当混乱. 表达式先运算后赋值,赋值后再和其它的关系式运算后继续计算.
[ 本帖最后由 eight 于 2007-9-5 23:15 编辑 ] 原帖由 xiaoyuewei2001 于 2007-9-5 22:03 发表 http://www.chinavib.com/forum/images/common/back.gif
表达式先运算后赋值,赋值后再和其它的关系式运算后继续计算.
抱歉,我的理解能力实在有限,看不懂。如果希望“参数传递后返回时其值跟着发生改变”,则使用 global 全局变量的方式。
ps:同意 xjzuo 版主的观点,你的程序相当混乱,建议先认真阅读本版的基础贴子(置顶帖中有),或者找本基础书看看 谢谢大家的关注,问题已经解决了,谢谢.
页:
[1]