フィルターのクリア

Finding a letter or number in a string of cells

2 ビュー (過去 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 ExchangeEntering Commands についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by