From: Roger Stafford on
"Mark " <bobbb909(a)yahoo.com> wrote in message <hri8s0$gjm$1(a)fred.mathworks.com>...
> "Steven Lord" <slord(a)mathworks.com> wrote in message <hrcuhl$1r6$1(a)fred.mathworks.com>...
> >
> > "Mark " <bobbb909(a)yahoo.com> wrote in message
> > news:hrcsta$g22$1(a)fred.mathworks.com...
> > > I'm trying to find the roots of 100 random polynomials of degree 5 and I
> > > need help with finding the roots. I know that I can gernerate 100
> > > polynomials by using
> > > >> x=rand([100 6])
> > > I know that I can't do >> roots(x)
> > > because the the input must be a vector. Is there anyway to to find all the
> > > roots of 100 random polynomials without generating each polynomial one by
> > > one.
> >
> > Loop over the rows of x and call ROOTS on each row, storing the roots back
> > into rows or columns of another matrix or into a cell array (depending on
> > how you need them.)
> >
> > --
> > Steve Lord
> > slord(a)mathworks.com
> > comp.soft-sys.matlab (CSSM) FAQ: http://matlabwiki.mathworks.com/MATLAB_FAQ
> >
> How would I wrtie the for loop? Here is what I got so far
>
> N=100;
> x=zeros(100, 6); % cretes an empty 100 x 6 matrix
>
> for k=1:N
> x(k)=roots(rand([1 6]));
> end
>
> x
> I know that this won't work so how can I get it to work.
-----------
You're almost there. Just add a colon. And use 100 x 5 size.

N=100;
x=zeros(100, 5); % creates an empty 100 x 5 matrix
for k=1:N
x(k,:) = roots(randn([1 6]));
end

Roger Stafford