MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 68|回复: 1|关注: 0

[已答复] polyfit不能处理二维矩阵,为什么

[复制链接]

新手

10 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 4 天前 | 显示全部楼层 |阅读模式
本帖最后由 逝云 于 2017-12-7 17:11 编辑

我的要求是根据8个点的位置(y)来预测后面一个点的位置,所以需要用到 POLYFIT(x,y,n)和POLYVAL(p,t).
那我的问题是,当我的x 和 y 都是 1行8列的数据时候没有问题,返回了一个1x4的系数(我用n=3)。
即, x=[x1-1 x1-2 x1-3 x1-4 x1-5 x1-6 x1-7 x1-8]
        y=[ y1-1 y1-2y1-3 y1-4 y1-5 y1-6 y1-7 y1-8]

polyfit (x,y,3) 会返回一组数据,没有问题

但是我有100行这样的数据,当我把 x 和 y 写成 100x8 的Array的时候,polyfit 仍然返回1组系数并没有返回一个100x4 的Array,但是我需要100行这样的系数放进POLYVAL 里面去预测100个点。
这样的话我该怎么做呢?

x=[ 0 1 2 3 4 5 6 7
      0 1 2 3 4 5 6 7
      ………  
                                              ---------100行

y=[ y1-1 y1-2 y1-3 y1-4 y1-5 y1-6 y1-7 y1-8
      y2-1 y2-2 y2-3 y2-4 y2-5 y2-6 y2-7y2-8
       …………


                                                ---------100行

我想知道polyfit是不是只能做 1行n列的计算,如果我有100组 8个点要做polyfit 是不是要做100次polyfit?就是说不能写成为(100x8的形式)

论坛优秀回答者

权威

6213 麦片

财富积分



5

主题

7507

帖子

1424

最佳答案
  • 关注者: 314
发表于 4 天前 | 显示全部楼层
polyfit(x,y,3)相当于polyfit(x(:),y(:),3),所以不能一次性拟合所有行。可以这样
  1. cell2mat(arrayfun(@(k) polyfit(x(k,:),y(k,:),3),1:size(x,1),'un',0)')
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回顶部 返回列表