level 1
比如1,2,3,4;0.193,0.368,0.539
2015年05月11日 11点05分
1
level 7
曲线拟合需要您自己编程算出来。比如,您要拟合出一条直线,y=a*x+b,需要求出a和b,您可以使用最小二乘法的共式,把a和b给计算出来。函数返回一个数组,包含2个元素[a,b]
2015年05月12日 08点05分
2
那点不就没有了吗,不是说matlab能做的,它都能做吗?显然拟合曲线最简单的,都做不到。开发者应该想想。我感觉这是最基本的用法。
2015年05月12日 09点05分
回复
������������
::可以哈。用interp1拟合你的曲线,样条插值啥的。当然你的点确实太少了
2015年05月12日 16点05分
回复
������������
:我们毕竟只是一个小个开发团体,不可能做到实现Matlab几十年才实现的所有的函数,不过一阶拟合函数很简单,完全可以自己编出来。参见最底下的回复
2015年05月13日 02点05分
level 1
function average_list(a)
variable size_of_a = size(a)[0]
variable return_val = 0
for variable idx = 0 to size_of_a - 1 step 1
return_val = return_val + a[idx]
next
return return_val/size_of_a
endf
function linear_fitting(x, y)
variable avg_x = average_list(x)
variable avg_y = average_list(y)
variable tmp1 = 0, tmp2 = 0
for variable idx = 0 to size(x)[0] step 1
tmp1 = tmp1 + (x[idx] - avg_x)*(y[idx]-avg_y)
tmp2 = tmp2 + (x[idx] - avg_x)**2
next
variable a = tmp1/tmp2
variable b = avg_y - a * avg_x
return [a,b]
endf
抛砖引玉了。
2015年05月13日 02点05分
4
您真是虚怀若谷
2015年05月13日 03点05分
提示第二个函数第六行出错。
2015年05月13日 03点05分
@花神落CL 注意x,y必须是含有相同个元素的数组,否则会出错。
2015年05月13日 04点05分