I need some tips on how to vectorize a code that finds the roots of polynomials stored in matrices. What I have is a multidimensional array that contains 100 matrices of 100-by-3 size. I'm pasting the code below
one = ones ( 100, 100 ); poly.struc = reshape( [ one; gr_fac1; - gr_fac2 ], 100, 3, [] ); poly_roots_select = zeros ( 100, 100); for j = 1:1:100 poly_matrices = poly.struc ( :, :, j ); for i = 1:1:100 poly_select = poly_matrices ( i, : ); poly_roots = roots ( poly_select ); poly_roots_select ( i , j) = poly_roots ( real ( poly_roots) > 0 , 1 ) ; end end
I would like to remove both for loops. At minimum I like to be able to access the matrices stored in poly.struc array without putting a loop for this. Is there also any other way to be able to pass a row vectors from a matrix to roots function without needing a loop?
Thanks in advance
Best Answer