How to extract numbers from cell array in MATLAB? - GeeksforGeeks

23 Jul, 2021
In this article, we are going to discuss the extraction of numbers from the cell array with the help of regexp(), str2double(), cat(), and isletter() functions.
A cell array is nothing but a data type having indexed data containers called cells, where each cell contains any type of data. It mainly contains either a list of texts, combinations of text and numbers, or numeric arrays of different sizes. 
Example:
Matlab
% MATLAB code for put data in the cell arrayA = {2, 4, 'gfg'}B = {1, 'GFG', {5; 10; 15}}
Output:
The regexp() function is used for matching the regular expression. It is case-sensitive.
Syntax:
startIndex = regexp(str, expression)
[startIndex, endIndex] = regexp(str, expression)
out = regexp(str, expression, outkey)
startIndex = regexp(str, expression) is used to return the starting index of each substring of str that matches the character patterns specified by the regular expression. If there are no matches, startIndex is an empty array.
[startIndex,endIndex] = regexp(str,expression) is used to return the starting and ending indices of all matches.
regexp(str, expression, outkey) is used to return the output specified by the outkey. For example, if outkey is ‘match’, then this function returns the substrings that match the expression rather than their starting indices.
Example:
Matlab
% MATLAB code for regexp with strjoin()% Initializing a cell arrayA = {'gfg'; 'gfg1.23GFG'; '5gfg10'};b=regexp(A,'\d+(\.)?(\d+)?','match')out=strjoin([b{:}],'')
Output:
The str2double() function is used for the conversion of strings to double-precision values.
Syntax:
str2double(string)
Here, str2double(string) is used to convert the text in the specified string to double-precision values.
Example:
Matlab
% MATLAB code for regexp() demonstration% Initializing a cell arrayA = {'gfg'; 'gfg1.23GFG'; '5gfg10'};  % Calling the regexp() function over the% above cell array to extract number partB = regexp(A,'\d+(\.)?(\d+)?','match');  % Calling the str2double() function to % convert the text to double-precision valuesout = str2double([B{:}])
Output:
out =
   1.2300    5.0000   10.0000
The cat() function is used to concatenate the specified arrays.
Syntax:
cat(dim, A, B)
cat(dim, A1, A2 ,..., An)
cat(dim, A, B) is used to concatenate “B” to the end of “A” along with the dimension “dim” when A and B have compatible sizes, i.e. the lengths of the dimensions match except for the operating dimension dim.
cat(dim, A1, A2, ..., An) is used to concatenate “A1, A2, ..., An” along with the dimension dim.
Matlab
% MATLAB code for extract numbers from% cell using regexp with strcat()% Initializing a cell arrayA = {'gfg'; 'gfg1.23GFG'; '5gfg10'};A1 = regexp(A,'[\d*\.]*\d*','match')A2 = [A1{:}]out = str2double(strcat(A2{:}))
Output:
The isletter() function is used to find the array of elements that are letters of the alphabet.
Syntax:
isletter(‘string’)
Here, isletter(‘string’) is used to return an array the same size as the specified “string” that contains logical true i.e. 1 when the elements of “string” are letters of the alphabet, and logical false i.e. 0 when they are not.
Example 
Matlab
% MATLAB code for isletter() demonstration% Initializing a cell arrayA = {'gfg'; 'gfg1.23GFG'; '5gfg'};  % Calling the cat() function to% concatenate the data of the above% cell array into a single string% one after anotherS = cat(2, A{:});  % Calling the isletter() function% to filter the numeric value S(isletter(S)) = []
Output:
S = 1.235
MATLAB Array-Programs
MATLAB-programs
MATLAB
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
How to Remove Noise from Digital Image in Frequency Domain Using MATLAB?
MRI Image Segmentation in MATLAB
How to Solve Histogram Equalization Numerical Problem in MATLAB?
How to Normalize a Histogram in MATLAB?
Laplace Transform in MATLAB
Laplacian of Gaussian Filter in MATLAB
Adaptive Histogram Equalization in Image Processing Using MATLAB
Forward and Inverse Fourier Transform of an Image in MATLAB
Boundary Extraction of image using MATLAB
How to Remove Salt and Pepper Noise from Image Using MATLAB?