Finding a character and returning that character
1 view (last 30 days)
Show older comments
amateurintraining
on 11 Oct 2017
Answered: Walter Roberson
on 11 Oct 2017
I have a function:
function [ vowels ] = findVowels( charCell )
%FINDVOWELS
% charCell: a two-dimensional cell array and each cell contains a
% character array
% vowels: a cell array with the same dimensions as charCell that contains
% only the vowels of each entry, in lower case
vowels=charCell;
switch vowels
case strfind(charCell, 'a')
disp('a')
case strfind(charCell, 'e')
disp('e')
case strfind(charCell, 'i')
disp('i')
case strfind(charCell, 'o')
disp('o')
case strfind(charCell, 'u')
disp('u')
end
end
And I want the function to search for the vowels and RETURN those vowels for example:
>>X={'hi','hello';'goodbye', 'later'};
>>findVowels(X)
ans=
2x2 cell array
'i' 'eo'
'ooe' 'ae'
My current function results in an error because vowels is not a scalar or a character. How do I go about this to produce a character?
0 Comments
Accepted Answer
Walter Roberson
on 11 Oct 2017
There was extensive discussion of this at https://www.mathworks.com/matlabcentral/answers/360652-display-the-characters-as-output
0 Comments
More Answers (1)
ES
on 11 Oct 2017
Your variable vowels is a cell array. You cant switch based on a cell array. Instead take each word, and run a for loop on each character. some thing like this,
for iLoop=1:length(charCell)
sCurrentWord = charCell{iLoop};
if ~isempty(strfind(charCell, 'a'))
disp('a')
end
if ~isempty(strfind(charCell, 'e'))
disp('e')
end
..and so on..
end
I would suggest to use regexp instead.
0 Comments
See Also
Categories
Find more on Elementary Math in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!