starbinbin_csu 发表于 2010-9-28 17:10:54

关于函数拟合的一次而问题

在做函数拟合时遇到了下面一些问题:

问题一:首先,我的matlab版本是2010a,在使用polyfit返回一个参数和两个参数时,都没有遇到问题,可是当返回参数为3个时,竟然出现了以下离奇的现象(系数完全不符合要求),比如说以下代码:
x=;
y=2*x+1;
=polyfit(x,y,1)

a =

    2.0000    5.0000


b =

      R:
       df: 1
    normr: 2.5121e-015


c =

   2
   1


问题二:
我想用disp函数在工作界面上显示出Tex字符中的x^2(2在上标处),能做到吗?不能的话能有什么方法在工作界面上显示Tex字符吗?


非常感谢不吝赐教!

lengyunfeng 发表于 2010-9-28 18:10:08

第一个问题在于当polyfit函数的输出参数有3个时,它默认的将对自变量进行归一化、标准化处理后才进行拟合操作,返回的第一个参数就是经归一和标准化处理后的x与y之间的系数阵,而b则为用polyfit返回的参数进行计算时与原值之间的估计误差,而c(1)为x的平均值,c(2)则为x的标准差。
第二个问题对于多项式来说的话应该是可以的,不过命令我忘了。对于其它的我不是很清楚。不过如果你说的工作界面是指图形界面的话,texlabel函数倒是可以用一下。

qibbxxt 发表于 2010-9-28 22:06:29

这第二个问题有难度,我记得以前似乎在什么地方见过,但是查了半天没有找到
现在能想到的办法就是自己构造这样的形式,但是样子很难看>> fprintf(' 222\nx +y =z\n')
222
x +y =z

messenger 发表于 2010-9-28 22:20:24

第二个问题可以用pretty命令

starbinbin_csu 发表于 2010-9-29 13:17:33

2# lengyunfeng
谢谢回答!
我想请问一下,如果我不想让polyfit函数进行归一化处理的话,有什么办法呢?

starbinbin_csu 发表于 2010-9-29 13:21:16

4# messenger
非常感谢!
可是这个函数具体的参数好像不能是字符格式的,如果我需要将像'x^2''这样的字符转换的话,需要怎么写呢?

lengyunfeng 发表于 2010-9-29 15:50:29

本帖最后由 lengyunfeng 于 2010-9-29 15:55 编辑

5# starbinbin_csu
你把输出参数改成2个或者1个就行了。

starbinbin_csu 发表于 2010-9-29 15:59:25

7# lengyunfeng
额。。。
可是我又想知道x的平均值和标准差又不想自己再写两句代码算~~
不知道有没有办法呢?
不过没有办法的话也可以,非常感谢耐心解答~~

qibbxxt 发表于 2010-9-29 16:32:28

8# starbinbin_csu
平均值mean
标准差std
页: [1]
查看完整版本: 关于函数拟合的一次而问题