From: Roger Stafford on 1 May 2010 22:55 "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
First
|
Prev
|
Pages: 1 2 Prev: Using interp1 for timeseries data Next: Matlab OOP (Basic): How to change the local variables |