24小时热门版块排行榜    

查看: 701  |  回复: 3

园中园

新虫 (正式写手)

[求助] 请高手指点:如何将子程序(.m文件)作为参数传递给函数 已有2人参与

请高手指点:
       如何将子程序(.m文件)作为一个参数传递给函数

    比如: function a=AS(子程序,其他参数)
                            子程序
                             。。。。。。。
                end
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

追求,奋斗,再追求,再奋斗
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

Mr__Right

专家顾问 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
园中园: 金币+2 2016-06-02 19:03:12
函数句柄,参考fmincon 的使用方法
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
2楼2016-06-02 17:25:59
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

园中园

新虫 (正式写手)

引用回帖:
2楼: Originally posted by Mr__Right at 2016-06-02 17:25:59
函数句柄,参考fmincon 的使用方法

大神,能说详细一些吗?
追求,奋斗,再追求,再奋斗
3楼2016-06-02 19:08:18
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

aprillf

木虫 (正式写手)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
月只蓝: 金币+3, 感谢应助 2016-06-30 13:17:18
引用回帖:
3楼: Originally posted by 园中园 at 2016-06-02 19:08:18
大神,能说详细一些吗?...

可以命令行输入 doc fsolve

然后查看fsolve函数说明文档中的例子

用法比如:先定义一个函数m文件待调用
CODE:
function [F,J] = bananaobj(x)
% Evaluate the vector function and the Jacobian matrix for
% the system of nonlinear equations derived from the general
% n-dimensional Rosenbrock function.
% Get the problem size
n = length(x);  
if n == 0, error('Input vector, x, is empty.'); end
if mod(n,2) ~= 0,
   error('Input vector, x ,must have an even number of components.');
end
% Evaluate the vector function
odds  = 1:2:n;
evens = 2:2:n;
F = zeros(n,1);
F(odds,1)  = 1-x(odds);
F(evens,1) = 10.*(x(evens)-x(odds).^2);
% Evaluate the Jacobian matrix if nargout > 1
if nargout > 1
   c = -ones(n/2,1);    C = sparse(odds,odds,c,n,n);
   d = 10*ones(n/2,1);  D = sparse(evens,evens,d,n,n);
   e = -20.*x(odds);    E = sparse(evens,odds,e,n,n);
   J = C + D + E;
end

然后调用的时候这样使用函数句柄:
CODE:
n = 64;  
x0(1:n,1) = -1.9;
x0(2:2:n,1) = 2;
options = optimoptions(@fsolve,'Display','iter','Jacobian','on');
[x,F,exitflag,output,JAC] = fsolve(@bananaobj,x0,options);

4楼2016-06-02 19:25:32
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 园中园 的主题更新
信息提示
请填处理意见