在MATLAB中编写函数m文件

时间:2014-01-26 01:19:20

标签: function matlab

我是编码的初学者,我需要编写一个与牛顿方法一起使用的function.m文件。我无法定义函数,其中r是半径,p是密度:

  

f(θ)=((r ^ 2)/ 2)*((2 * pi * p) - (θ-sin(θ)* p))

其中半径 r = 30cm 且密度 p = 0.82克/ cm3

到目前为止,我写过:

function y = f1(theta)
r = 0.3;
p = 0.82;
y = (r^2)/2*(2*pi*p - (theta - sin(theta)*p));

我遇到问题的事情:

  1. 定义r和p的问题。得到错误:

    Undefined function or variable 'r'
    
  2. 无法绘制该功能。

  3. 我想做的事情:

    1. 绘制函数以查看根的位置。
    2. 能够评估给定theta的功能。
    3. 感谢所有帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

这可以使用匿名函数

完成
r=0.3;
p=0.82;
f=@(theta) (r^2)/2*(2*pi*p-theta+p*sin(theta));

然后评估函数只使用例如:f(1),并绘制它,例如:

angles=0:.01:pi;
plot(angles,f(angles))

如果您不想使用匿名功能,请使用

function funcVal=func(angles)
    r=0.3;
    p=0.82;
    funcVal=(r^2)/2*(2*pi*p-angles+p*sin(angles));
end

并通过

调用它
angles=0:.01:pi;
plot(angles,func(angles))

答案 1 :(得分:0)

我尝试了你的代码而没有改变。我将 M-file 命名为 f1 ,并在命令行中执行该功能。

function y = f1(theta)
r = 0.3;
p = 0.82;
y = (r^2)/2*(2*pi*p - (theta - sin(theta)*p));

我得到的输出如下

  
    

为f = f1(45)

  

f =

-1.7618

  
    

这表明你的功能没有问题。看看其他原因。如果你可以提供整个代码,那么诊断会更好。