MATLAB: How can i change cell array to matrix

cell arraysmixed data

I have excel mixed file and used [T,M,dat]=xlsread('Mol.xlsx')to import to matlab
dat= 'A' [12] [-20] [-75] [66] 'B' [9] [-10] [-50] [55] 'C' [15] [-25] [10 ] [45] 'D' [14] [-15] [5] [20]
I want to remove row if the value of column 3 is >= -15. so i used the following criteria, dat(dat(:,3)>=-15,:)=[] but i get the following error Undefined function or method 'ge' for input arguments of type 'cell'. how can i solve this problem?

Best Answer

Since you have mixed data types you can't convert the cell array into a matrix. You could just operate on the numeric matrix T and text matrix M with:
rowstodelete = T(:, 3) >= -15;
T(rowstodelete, :) = [];
M(rowstodelete, :) = [];
dat(rowstodelete, :) = [];
Simpler, would be to use a table which can handle mixed data types and has a more intuitive syntax than cell arrays. It's also dead easy to import excel data into a table:
t = readtable('Mol.xlsx'); %possibly that's all you need. If your excel file has no header row:
%t = readtable('Mol.xlsx', 'ReadVariableNames', false);
t(t(:, 3) >= -15, :) = [] %delete rows for which column 3 is >=-15