焦上客 发表于 2009-3-28 21:05

如何传递参数到函数中?

如果function F=F(X)
      F(1)=2*m+a^2+1;
      F(2)=n+b*5;
       a=X(1);b=X(2);
调用fsolve函数来解这个非线性方程组。
而我定义global m n; 希望在外部为n m赋值来解。
为什么报错:Undefined function or variable 'm'

ChaChing 发表于 2009-3-28 22:10

Help global
需用到的每一函数皆需declare

焦上客 发表于 2009-3-29 13:05

Matlab中fsovle 函数调用?
function F=F(X)
      global M N;
      F(1)=2*m+a^2-1; F(2)=n+b*5;
       a=X(1);b=X(2);%待求量
定义M N 为全局变量;.
global M N; N=0.1;
for M=0.1:0.1:1
   {
    X=fsolve('fxyz',);
    if (0<X(1)<2&&0<X(2)<2)
      return
    else
      break
    }
    end
end
为什么会报错:
X=fsolve('fxyz',);
The expression to the left of the equals sign is not a valid target for an assignment

[ 本帖最后由 ChaChing 于 2009-3-29 13:12 编辑 ]

ChaChing 发表于 2009-3-29 13:08

又不是C语言! 那来{...} ?
还有建議樓主說清楚些, 並先看下本版規則並加強發問題方式!
请勿开新贴,一帖发完

[ 本帖最后由 ChaChing 于 2009-3-29 13:09 编辑 ]

焦上客 发表于 2009-3-29 13:10

抱歉,新手上路。以后会多注意。

抱歉,新手上路。以后会多注意。

liushuiwuxin 发表于 2009-3-29 22:11

X=fsolve('fxyz',);改为x0=;X=fsolve(@fxyz,x0);

ChaChing 发表于 2009-3-30 08:47

回复 6楼 liushuiwuxin 的帖子

这个应该不是错误! 旧版的用法都是使用'fxyz'的
页: [1]
查看完整版本: 如何传递参数到函数中?