Finding a character and returning that character

2 次查看(过去 30 天)
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?

采纳的回答

Walter Roberson
Walter Roberson 2017-10-11

更多回答(1 个)

ES
ES 2017-10-11
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.

类别

Help CenterFile Exchange 中查找有关 File Operations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by