Finding a letter or number in a string of cells

4 ビュー (過去 30 日間)
Matthew
Matthew 2015 年 10 月 29 日
編集済み: Stephen23 2015 年 10 月 29 日
Example. Say I have a cell array = Brad1, Bobby2, 1Bob, 2Bradley, 2Bailey. etc... Each Name is a file of information containing some attributes. Say this cell array of names is about 180 files long.
I need to separate the names, i.e put them in either a cell array for names that contain a 1, or place them into an array if their name contains a 2. How would I do this using a for loop?.

回答 (3 件)

TastyPastry
TastyPastry 2015 年 10 月 29 日
out = {};
for i=1:numel(myData)
myStr = myData{i};
myNum = str2double(myStr(myStr>= 48 & myStr <= 57));
myName = myStr(isstrprop(myStr,'alpha'));
out{size(out,1)+1,myNum} = myName;
end
This stores the data into a cell array where the columns correspond to the values in the names.

Thorsten
Thorsten 2015 年 10 月 29 日
編集済み: Thorsten 2015 年 10 月 29 日
C = {'Brad1', 'Bobby2', '1Bob', '2Bradley', '2Bailey'}
f1 = C(~cellfun(@isempty, strfind(C, '1')))
f2 = C(~cellfun(@isempty, strfind(C, '2')))

Stephen23
Stephen23 2015 年 10 月 29 日
編集済み: Stephen23 2015 年 10 月 29 日
There is no need for any loops:
>> X = {'Brad1','Bobby2','1Bob','2Bradley','2Bailey'};
>> X(~cellfun('isempty',strfind(X,'1')))
ans = 'Brad1' '1Bob'
>> X(~cellfun('isempty',strfind(X,'2'));)
ans = 'Bobby2' '2Bradley' '2Bailey'

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by