在《精通MATLAB最优化计算》一书中,很多m文件中都用到了Funval函数,可是这个函数没有定义,怎么办?这次函数的源程序我有,可是不知道怎么用?
我有这个函数的源程序,但是在调用这个函数的其余函数的m文件时如何使用啊?
《精通MATLAB最优化计算》一书中Funval函数应用
答案:3 悬赏:60 手机版
解决时间 2021-02-27 07:14
- 提问者网友:两耳就是菩提
- 2021-02-26 22:54
最佳答案
- 五星知识达人网友:逃夭
- 2021-02-27 00:05
此书funval函数的作用即求函数值,可将funval直接改写为subs,不影响结果。subs的用法你会吧?~
全部回答
- 1楼网友:北方的南先生
- 2021-02-27 02:06
抽象机的堆 ,堆对象有下面四类:
basic:存放基值的单元
funval:对象表示一个函数值
1、cf:指向程序区中函数体开始的地方
2、fap:指向函数变元向量
3、fgp:函数各全局变量值的指针所组成的向量的指针
后两个向量也存在堆中
closure:对象是一个闭包,有两个成分
1、cp:代码指针
2、gp:全局变量值的指针向量的指针
vector:对象是堆对象指针的向量
1、存放函数变元的指针,或
2、存放funval对象的全局变量的指针,或
3、存放closure对象的全局变量的指针
上面的代码函数f需要用m文件定义出来 参数
- 2楼网友:轻熟杀无赦
- 2021-02-27 00:44
%%我用这个函数调试成功了
function fv = Funval(f,varvec,varval)
var = symvar(f);
varc = symvar(varvec);
s1 = length(var);
s2 = length(varc);
m =floor((s1-1)/3+1);
varv = zeros(1,m);
if s1 ~= s2
for i=0: ((s1-1)/3)
k = strfind(varc,var(3*i+1));
index = (k-1)/3;
varv(i+1) = varval(index+1);
end
fv = subs(f,var,varv);
else
fv = subs(f,varvec,transpose(varval));
end
end
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯