MATLAB Answers

How to determine if a cell has numeric data?

119 views (last 30 days)
Zachary Reyes
Zachary Reyes on 25 Oct 2018
Answered: Giovanni Liverani on 22 Nov 2019
How would I go about making a function that determines if a cell contains numeric data? It is a single cell, not a cell array. I am trying to determine if the data is numeric and the dimensions of the numeric array. If the data is not numeric, the dimensions are an empty set. Here is what I have so far:
function [isNum, dim] = isCellNumeric(c)
if (isnumeric(c))
isNum = true;
dim = size(c);
else
isNum = false;
dim = {};
end
end
Any help is appreciated, thanks!
  2 Comments
Zachary Reyes
Zachary Reyes on 25 Oct 2018
The empty matrix makes sense; I will fix the code to look at the contents, thanks a lot.

Sign in to comment.

Answers (2)

OCDER
OCDER on 25 Oct 2018
% checkCellForNum will look at each element of a cell array to look for numeric
% elements. Returns a logical array of 1 for numeric positions and a cell array
% of dimensions for only the numeric cell elements.
%
% EXAMPLE
% C = {[1 3] 2 'b' 'c'};
% [IsNum, Dim] = checkCellForNum(C)
function [IsNum, Dim] = checkCellForNum(C)
IsNum = cellfun('isclass', C, 'double'); %Only checks for double. If you want the same output as isnumeric, use cellfun(@isnumeric, C)
Dim = cell(size(C));
Dim(IsNum) = cellfun(@size, C(IsNum), 'un', 0);

Giovanni Liverani
Giovanni Liverani on 22 Nov 2019
The way is solved it is:
waitfor(msgbox('You are about to participate in a "... Task". Before we continue, you will be asked to insert your personal details (student ID, gender, age) below.'));
prompt = {'Enter Student ID:','Gender (1: Male, 0:Female):', 'Age'};
dlgtitle = 'Input';
dimension = [1 45];
definput = {'123456789','1','21'};
SubjectData = inputdlg(prompt,dlgtitle,dimension,definput);
waitfor(SubjectData);
if isnan(str2double(SubjectData{1})) == 1 || isnan(str2double(SubjectData{2})) == 1|| isnan(str2double(SubjectData{3})) == 1
waitfor(errordlg('Invalid Value. Call assistant to restart the experiment', 'Error'));
return
end

Tags

No tags entered yet.

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by