Remove columns of cell that contain double

조회 수: 2 (최근 30일)
RuiQi
RuiQi 2016년 7월 12일
편집: the cyclist 2016년 7월 12일
I am aware that I can use http://www.mathworks.com/help/matlab/ref/isa.html to determine the data type of an object. However, how would I find the data type of the columns of a cell ? I need to remove the cells that are of not type double. For example, I have tried
isa(result{:},'double')
isa(result,'double')
to find out if the columns are of type double and it has not worked. I decided to just use a for loop to find the columns that contain double/single. Given this new data keep where keep(i) = 1 if column i contains single and 0 if column i contains double, how do i remove the columns that contain doubles ?

답변 (2개)

the cyclist
the cyclist 2016년 7월 12일
편집: the cyclist 2016년 7월 12일
Use the cellfun function to apply a function to each cell of a cell array. For example,
C = {[1 2 3],'a'};
removeIdx = not(cellfun(@(x)isa(x,'double'),C));
C(removeIdx) = [];

KSSV
KSSV 2016년 7월 12일
C = {1:10, [2; 4; 6], ['cool']}; % A cell array
types = cellfun(@class, C,'UniformOutput', false) ; % get the classes of each cell
IndexC = strfind(types, 'double'); % get the indices of doubles
Index = find(not(cellfun('isempty', IndexC)));
iwant = C(Index) % pick only doubles

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by