声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1545|回复: 6

[编程技巧] 如何传递参数到函数中?

[复制链接]
发表于 2009-3-28 21:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
如果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'
回复
分享到:

使用道具 举报

发表于 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',[1,0]);
    if (0<X(1)<2&&0<X(2)<2)
        return
    else
        break
    }
    end
end
为什么会报错:
X=fsolve('fxyz',[1,0]);
The expression to the left of the equals sign is not a valid target for an assignment

[ 本帖最后由 ChaChing 于 2009-3-29 13:12 编辑 ]
发表于 2009-3-29 13:08 | 显示全部楼层
又不是C语言! 那来{...} ?
还有建議樓主說清楚些, 並先看下本版規則並加強發問題方式!
请勿开新贴,一帖发完

[ 本帖最后由 ChaChing 于 2009-3-29 13:09 编辑 ]
 楼主| 发表于 2009-3-29 13:10 | 显示全部楼层

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

抱歉,新手上路。以后会多注意。
发表于 2009-3-29 22:11 | 显示全部楼层
X=fsolve('fxyz',[1,0]);改为x0=[1;0];X=fsolve(@fxyz,x0);
发表于 2009-3-30 08:47 | 显示全部楼层

回复 6楼 liushuiwuxin 的帖子

这个应该不是错误! 旧版的用法都是使用'fxyz'的
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-6 09:47 , Processed in 0.062906 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表