Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: Single Trendline for multiple datasets
Replies: 2   Last Post: Jan 23, 2013 4:18 PM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Derek Goring

Posts: 3,919
Registered: 12/7/04
Re: Single Trendline for multiple datasets
Posted: Jan 23, 2013 4:18 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On Thursday, January 24, 2013 10:03:08 AM UTC+13, Charlotte wrote:
> TideMan <mulgor@gmail.com> wrote in message <5ee51095-fef4-4353-8f44-4474a719180f@googlegroups.com>...
>

> > On Thursday, January 24, 2013 9:24:08 AM UTC+13, Charlotte wrote:
>
> > > I have a plot with multiple datasets plotted, and would like to plot on top a single trendline for all the datasets - is there an easy way to do this?
>
> >
>
> > 1. Assemble all the data into two vectors, x and y
>
> > x=[x1(:);x2(:); etc ];
>
> > 2. Fit a line to the data using least squares:
>
> > coef=[x ones(length(x),1)]\y;
>
> > 3. Define the line:
>
> > xfit=[min(x) max(x)];
>
> > yfit=coef(1)*xfit + coef(2);
>
> > 4. Plot
>
> > plot(x,y,'bo',xfit,yfit,'r-')
>
>
>
>
>
> thank you very much for your reply - I get an error on the coef line:
>
> ??? Error using ==> horzcat
>
> CAT arguments dimensions are not consistent.
>
>
>
> Error in ==> Postplotmultiples_CAD at 44
>
> coef=[x ones(length(x),1)]\y;
>
>
>
> fyi - my x vector has multiple instances of the same value
>
>
>
> so my y vector will be something like [332.456 345.321 234.543 453.456, etc.]
>
> and my x will be [1 2 1 2, etc.]
>
>
>
> any help much appreciated!


Your x is a row vector, whereas ones(length(x),1) is a column vector.
You need to make them consistent by transposing (append an apostrophe):
coef=[x' ones(length(x),1)]\y';
alternatively:
coef=[x(:) ones(length(x),1)]\y(:);



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.