MATLAB: How can i use roots function with a 100×3 matrix

MATLABroots

I have a nx3 matrix. n rows and 3 columns. Every elements in a row are coefficents of a polynomial.
I want to get roots for every row.
After i get roots i want to eleminate nonlogical root and i can get logical root which i need.
Any idea of this?

Best Answer

result = cellfun(@roots, num2cell(yourmatrix, 2), 'UniformOutput', false)
Will return a nx1 cell array of column vectors which are the roots of every row.
Alternatively, do it with a loop:
result = cell(size(yourmatrix, 1), 1);
for row = 1:size(yourmatrix, 1)
result{row} = roots(yourmatrix(row, :));
end
I have no idea what a logical or nonlogical root is.