Search All of the Math Forum:

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

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: How to create a matrix with increasing power?
Replies: 9   Last Post: Feb 28, 2014 10:06 AM

 Messages: [ Previous | Next ]
 Curious Posts: 2,359 Registered: 12/6/04
Re: How to create a matrix with increasing power?
Posted: Feb 22, 2014 12:35 PM

"John D'Errico" <woodchips@rochester.rr.com> wrote in message <le8oju\$s2t\$1@newscl01ah.mathworks.com>...
> "someone" wrote in message <le8iet\$dv5\$1@newscl01ah.mathworks.com>...
> > "Sven " <svendotholcombe@gmaildot.com> wrote in message <le8g3t\$7kg\$1@newscl01ah.mathworks.com>...
> > > "Timothy Liang" <timothy.tliang@gmail.com> wrote in message <le8e48\$1uu\$1@newscl01ah.mathworks.com>...
> > > > I just started to learn how to use matlab... Just a simply question...
> > > >
> > > > Is there a simple way create a matrix like this?
> > > > x= 1, 2, 3, 4, 5
> > > >
> > > > matrix X=1^0 1^1 1^2 1^3
> > > > 2^0 2^1 2^2 2^3
> > > > 3...
> > > > 4...
> > > > 5...
> > > >
> > > > Thanks!!

> > >
> > > Yep, try this:
> > >
> > > bsxfun(@power, 0:5, (1:5)')
> > > ans =
> > >
> > > 0 1 2 3 4 5
> > > 0 1 4 9 16 25
> > > 0 1 8 27 64 125
> > > 0 1 16 81 256 625
> > > 0 1 32 243 1024 3125

> >
> > I don't think this is what Timothy asked for.
> >
> > If I understand the OP he wants a 4X5 matrix where given:
> >
> > x = 1:5
> > y = 10^(0:3)
> >
> > for ii = 1:length(x)
> > X(:,ii) = x(ii)*y;
> > end
> >
> > I don't have MATLAB installed on this computer,
> > but the result should be:
> > X= [
> > 1 1 2 3
> > 1 2 4 8
> > 1 3 9 27
> > 1 4 16 64
> > 1 5 25 125]
> >
> > which is what I believe the OP asked for. (Maybe its transposed.)
> >
> > I know there are more MATLAB efficient ways,
> > but Timothy did ask for a SIMPLE way.

>
> Geez. BSXFUN IS the simple way.
>
> wrong in the respect that the poster wanted a
> slightly different result.
>
> But no, the poster did explicitly ask for a 5x4 matrix,
> NOT a 4x5 matrix.
>
> bsxfun(@power, (1:5)',0:3)
> ans =
> 1 1 1 1
> 1 2 4 8
> 1 3 9 27
> 1 4 16 64
> 1 5 25 125
>
> As far as the simple way, I find it difficult to understand
> how a trivial (and clear) one line solution is not the
> simpler solution than something that uses loops and
> indexing.
>
> Finally if you don't understand how to use bsxfun, then
> it is high time to learn, as this is a powerful tool in
> MATLAB.
>
> John

John,

Like I said in my original post, I knew there was a more efficient way but I didn't have MATLAB installed on the computer I was on at the time. My main concern was to alert the OP that the solution proposed was not what he asked for. Maybe, in hindsight, I shouldn't have emphasized "simple" in my post.

Date Subject Author
2/21/14 Timothy Liang
2/21/14 Sven
2/21/14 Timothy Liang
2/21/14 Curious
2/21/14 Curious
2/21/14 John D'Errico
2/22/14 Curious
2/22/14 Timothy Liang
2/22/14 Timothy Liang
2/28/14 SEOLSRON