How can I search through a row in a cell array to find strings?
이전 댓글 표시
I have imported data as a cell array from excel via the xlsread function.
I have searched through the first column in the array using
for i= find(strcmp('string',filename)). This gives me the correct rows that I need to look through to find strings.
How do I search through these found rows to find strings? The array is full of empty spaces and strings. I do not need a specific string, I need any string within that row.
Thank you
댓글 수: 2
sixwwwwww
2013년 12월 4일
can you show your complete code and your data to ans the question in a better way
답변 (2개)
Walter Roberson
2013년 12월 4일
find( ~cellfun( @isempty, YourArray(i, :) ) )
or if you just care whether there is anything non-empty
~all( cellfun( @isempty, YourArray(i,:) ) )
댓글 수: 1
Dear Justin, you can find the occurances of string 'DIRs' in cell array as follow:
[~, ~, MyDATA] = xlsread('filename.xlsx','Data Correlation');
MyDATA(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),MyDATA)) = {''};
str = 'DIRs';
StringFoundAt(1, :) = {'Row number', 'Starting index'};
count = 2;
for i = 1:size(MyDATA, 1)
row = MyDATA(i, :);
row = row(cellfun(@(x) (~isempty(x)) && (~isnumeric(x)), row));
if ~isempty(row)
idx = strfind(row, str);
idx = idx(cellfun(@(x) ~isempty(x), idx));
if ~isempty(idx)
StringFoundAt(count, :) = {i, cell2mat(idx)};
count = count + 1;
end
end
end
I hope it helps. Good luck!
댓글 수: 5
sixwwwwww
2013년 12월 9일
It is the result which I obtained from this code and data you provided in the attachment:
'Row number' 'Starting index'
4 1
10 1
16 1
22 1
28 1
34 1
40 1
46 1
52 1
58 1
64 1
70 1
76 1
82 1
88 1
94 1
100 1
106 1
112 1
118 1
124 1
130 1
136 1
142 1
148 1
154 1
160 1
Is this result you want? Is it correct?
Justin
2013년 12월 10일
sixwwwwww
2013년 12월 13일
Starting index means DIRs appears in the row given by Row number and at position given by Starting index. So
'Row number' 'Starting index'
4 1
means that string DIRs appears at start(because Starting index = 1) of the in row 4. Is that what you need?
카테고리
도움말 센터 및 File Exchange에서 Structures에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!