matlab中 在M文件中定义martin函数无法执行

问题描述:

matlab中 在M文件中定义martin函数无法执行
>> function Martin(531,531,531,5000)
f=@(x,y)(y-sign(x)*sqrt(abs(531*x-531)));
g=@(x)(531-x);
m=[0;0];
for n=1:5000
m=(:,n+1)=[f(m(1,n),m(2,n)),g(m(1,n))];
end
plot(m(1,:),m(2,:)'kx');
axis equal
执行Martin(531,531,531,531)
输出时报错如下:
Error:File:Martin.m Line:6 Column:8
Unexpected MATLAB operator.
1个回答 分类:综合 2014-10-28

问题解答:

我来补答
第一行代码到底是在命令窗口输入,还是在M文件中?
        function Martin(531,531,531,5000)
如果在命令窗口,不应该有function这个关键字;如果在M文件中,则括号里的形式参数应该是变量,而不应是具体的数;
 
下面这一句的第一个等号应该是多余的:
        m=(:,n+1)=[f(m(1,n),m(2,n)),g(m(1,n))];
 
这一句在'kx'前少了个逗号:
        plot(m(1,:),m(2,:)'kx');
 
帮给你简单改了一下,把下面的代码直接保存到文件,然后运行即可.
function Martin
f=@(x,y)(y-sign(x)*sqrt(abs(531*x-531)));
g=@(x)(531-x);
m=[0;0];
for n=1:5000
    m(:,n+1)=[f(m(1,n),m(2,n)),g(m(1,n))];
end
plot(m(1,:),m(2,:),'kx');
axis equal
 
 
展开全文阅读
剩余:2000