muaqin 发表于 2009-11-26 20:53

急求助一个matlab程序小问题

假设a=;b=;,B如果要变成A,需要首先交换2,4位,然后再交换3,4位,也就是我希望函数显示出交换的顺序(2,4)及(3,4)
函数是这样写的
function y=f(a,b,k)
m=1;
for i=1:k         
        for j=1:k
        if b(j)==a(i)
            if j==i
                break;
            else
               y(m,1)=i;
               y(m,2)=j;
               m=m+1;
               t=b(i);b(i)=b(j);b(j)=t;
               break
            end
        end   
    end   
end
调用函数y=f
显示的是Error using ==> f.f
Undefined D matrix.
请高手们帮忙看看是什么问题。

madio 发表于 2009-11-26 21:52

调用函数的时候要使用圆括号,不是方括号。

为你奋斗 发表于 2009-11-26 22:42

还是论坛管理员厉害!呵呵,我们要好好学习!

muaqin 发表于 2009-11-27 08:22

是用的圆括号,那是我打错了!不是那个问题。提示的是Undefined D matrix,不明白这是什么错误

leo12ok 发表于 2009-11-27 08:29

你程序运行结果:

>> y=f(a,b,3)
y =
     3     2
>> y=f(a,b,4)
y =
     2     4
     3     4

不会出错啊

muaqin 发表于 2009-11-27 10:29

找到问题了,我在matlab中编的函数名为ss,不是f,换个函数名就可以了。好像ss不能做为函数名。

muaqin 发表于 2009-11-27 10:31

还忘了一件事,谢谢各位的帮忙!!!!!!!!!!

gk0402jeff 发表于 2009-11-27 19:58

呵呵呵~气氛不错

spectral 发表于 2009-12-5 20:25

原来是这样呀!我也学了一招!主函数名和文件名应该一致才可以!
页: [1]
查看完整版本: 急求助一个matlab程序小问题