![]() |
sol是起什么作用?
function [f]=myfun(sol,bnd)
x=sol; n=length(x); f=0; for i=1:n f=f+x(i)*i; end 请问,sol是什么意思?起什么作用? |
回复: sol是起什么作用?
汗……
sol,bnd是输入参数,传参用的 f是输出参数 上面的函数都没用到bnd 其实可以改成 [CODE] function [f]=myfun(x) n=length(x); f=0; for i=1:n f=f+x(i)*i; end [/CODE] |
回复: sol是起什么作用?
[CODE]
% myfun.m % 这段代码定义了一个函数myfun % 输入矩阵x % 输出f % % 把代码存为myfun.m % 在命令窗口中执行 % >>a=[4,5,6]; % % >>b=myfun(a) % 输出 % b = % % 32 function [f]=myfun(x) n=length(x); f=0; for i=1:n f=f+x(i)*i; end % 函数执行过程如下 % 输入参数x获得值a的值 % n取得x的长度3 % f为0 % i从1到3 % f=f+x(i)*i; % 最终f=32 % b获得输出参数f的值 [/CODE] |
回复: sol是起什么作用?
有时候是这样:
有时候是这样: function [f]=myfun(sol,bnd) x1=sol(1) x2=sol(2) 但运行时,为何总提示sol没有定义? |
回复: sol是起什么作用?
怎么运行的?
对 function [f]=myfun(sol,bnd) x1=sol(1) x2=sol(2) 的情况 把代码存为myfun.m 在命令窗口中执行 >>x=[1,2]; >>b=[]; >>f=myfun(x,b) 看报什么错 最好把源码和错误提示贴上来 |
回复: sol是起什么作用?
你不会直接把函数文件运行了吧
|
回复: sol是起什么作用?
function[sol,eval]=myf(sol,options)
x1=sol(1); x2=sol(2); r1=0.1; r2=0.8; g1=x1-2*x2+1; g2=x1.^2/4-gx2.^2+1; if(g1>=0)&(g2>=0) eval=(x1-2).^2+(x2-1).^2; else eval=(x1-2).^2+(x2-1).^2+r1*g1+r2*g2; eval=-eval; end 运行后,提示: ??? Input argument "sol" is undefined. Error in ==> myf1 at 2 x1=sol(1); |
回复: sol是起什么作用?
2 个附件
[ATTACH]1029[/ATTACH]
已修改 你下载后解压到工作路径 打开testmyf.m运行 |
回复: sol是起什么作用?
[QUOTE=pslpsl;14908]你不会直接把函数文件运行了吧[/QUOTE]
原来是这样.问题解决了.真高手啊,呵呵.我刚接触matlab,有很多问题不懂. |
所有时间均为北京时间。现在的时间是 12:14。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.