MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   sol是起什么作用? (https://www.labfans.com/bbs/showthread.php?t=4185)

exitenter4073 2008-08-21 15:23

sol是起什么作用?
 
function [f]=myfun(sol,bnd)
x=sol;
n=length(x);
f=0;
for i=1:n
f=f+x(i)*i;
end
请问,sol是什么意思?起什么作用?

pslpsl 2008-08-21 15:29

回复: 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]

pslpsl 2008-08-21 15:46

回复: 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]

exitenter4073 2008-08-21 15:54

回复: sol是起什么作用?
 
有时候是这样:
有时候是这样:
function [f]=myfun(sol,bnd)
x1=sol(1)
x2=sol(2)

但运行时,为何总提示sol没有定义?

pslpsl 2008-08-21 15:59

回复: sol是起什么作用?
 
怎么运行的?

function [f]=myfun(sol,bnd)
x1=sol(1)
x2=sol(2)
的情况

把代码存为myfun.m

在命令窗口中执行

>>x=[1,2];
>>b=[];
>>f=myfun(x,b)

看报什么错
最好把源码和错误提示贴上来

pslpsl 2008-08-21 16:09

回复: sol是起什么作用?
 
你不会直接把函数文件运行了吧

exitenter4073 2008-08-21 16:11

回复: 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);

pslpsl 2008-08-21 16:23

回复: sol是起什么作用?
 
2 个附件
[ATTACH]1029[/ATTACH]


已修改
你下载后解压到工作路径
打开testmyf.m运行

exitenter4073 2008-08-21 16:31

回复: sol是起什么作用?
 
[QUOTE=pslpsl;14908]你不会直接把函数文件运行了吧[/QUOTE]

原来是这样.问题解决了.真高手啊,呵呵.我刚接触matlab,有很多问题不懂.


所有时间均为北京时间。现在的时间是 12:14

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.