zhaojinhuan 发表于 2009-5-12 18:09

matlab 调用函数中的参数传递(已经解决)

function S=ff(sig);
global sig
   在这个函数中又调用了另外一个函数
       fenmu=ker(z1,z2);
       fenzi=ker(z3,z4);
       S=fenzi/fenmu
ker函数如下
   function y=ker(x1,x2)
    =size(x1);
         =size(x2);
         for i=1:n1
             for j=1:n2
               y(i,j)=exp(-sig*(norm(x1(i,:)-x2(j,:))^2));
             end
         end
我在命令出口中输入ff(1)
显示如下
Error in ==> ker at 7
             y(i)=exp(-sig*(norm(x1(i,:)-x1(i,:))^2));
Error in ==> ff at 23
麻烦各位看一下在哪出问题了

[ 本帖最后由 zhaojinhuan 于 2009-5-12 21:46 编辑 ]

friendchj 发表于 2009-5-12 19:48

你并未在函数ker中声明全局变量sig。为什么不把sig也通过函数传递呢。考虑:
fenmu=ker(z1,z2,sig);
……
function y=ker(x1,x2,sig)

zhaojinhuan 发表于 2009-5-12 20:28

这个办法也试了,还是不行啊

ChaChing 发表于 2009-5-12 21:41

感觉LZ应该再给齐一些, 方便判断!

zhaojinhuan 发表于 2009-5-12 21:46

已经解决了,谢谢楼上两位

ChaChing 发表于 2009-5-12 22:04

回复 5楼 zhaojinhuan 的帖子

建议与大家分享你的成果, 做个结束!

zhaojinhuan 发表于 2009-5-12 23:24

回复 6楼 ChaChing 的帖子

后来再用2楼的办法,就ok了,原来第一次适的时候在调用ker函数时候少输入一个参数
页: [1]
查看完整版本: matlab 调用函数中的参数传递(已经解决)