PDA

查看完整版本 : 如何调用自己的程序


菲比寻常
2009-03-13, 15:32
新手,刚刚接触,请问大家如何将已编好的程序调入。谢谢,
有个程序名:Sc.m”
调用到新程序中就不行了总是显示Get::noopen: "Cannot open Sc.m “
源程序:
<< Sc.m
xi3 = RT[{0, l1, 0}, {0, 0, 1}]
。。。
Js = Simplify[
Sp[{xi1, th1}, {xi2, th2}, {xi3, th3}, {xi4, th4}, gst0]
];
大家帮帮忙,
谢谢!

wangzongxin306
2009-03-13, 16:44
调用自己编的函数的话,一定要保证所存的.m文件名和编的函数名一致。另外你函数里也没有function声明,所以出的错。以下是自己编写m函数的一些注意事项,希望对你有所帮助。




(1)  M函数的第一行必须包含function,普通的M文件没有这种要求。
(2) 在function后面必须声明函数名、输入变量(输入参数)与输出变量(输出参数),如function outvar=function_name(inputvar)。
(3)  M函数可以有零个、一个或多个输入或输出。
(4)  M函数的调用方式为:outvar=function_name(inputvar)。

(5)  M函数文件名须和函数名function_name相同,调用时函数的输入与输出变量名称不需要和函数定义中的变量相同。
(6)  M函数的注释用%开始的行表示,help function_name 显示的是紧接第一行之后的注释。
【例2.11】 编写一个通用的M函数求取【例2.10】中函数在任意点的值,并绘制函数在区间中的图形。
解:(1) 编写函数demofun并将其存储在同名M文件demofun.m中。
function y=demofun(x) % M函数定义
leng=length(x); % 计算向量x的长度
for m=1:leng % 计算函数值
if x(m)<=0 % 判断x取值所在范围

y(m)=sin(x(m)); % 计算分段函数值
elseif x(m)<=3
y(m)=x(m); % 计算分段函数值
else
y(m)=-x(m)+6; % 计算分段函数值
end
end

调用时,直接在命令窗口打出demofun然后回车。就运行了你编写的这个函数了。

未注册
2009-03-23, 18:57
谢谢。
我是用得Package,没有说清楚。
我把所有文件放在了一个文件夹里,但是运行还是不行。
是不是这个Package有特殊的地方要放?

wuyunmorigen
2010-01-03, 08:45
可以放在任何目录,但是调用时用Get[ ]函数,比如你把程序包放在了D盘根目录就应该输入:
Get["D:\\*.m"]
这里*代表文件名。这种方法是非规范安装,规范安装是这样的,将您的包文件存入
4.x版本:mathematica\4.x\AddOns\standardpackages
6.0及以后的版本:
mathematica\6.0\AddOns\packages
调用时可用
<<*`