Я пытаюсь искать конкретные символы в массиве и печатать выходные данные в листе Excel в том же порядке (т. Е. Если между элементами нет совпадения, он остается пустым) ,Объединение различных массивов ячеек в один в MATLAB
Я использовал следующий код внутри цикла:
EDIT:
[num,txt,~] = xlsread('protein-peptides.xls')
for i=1:size(txt)
str(i)=txt(i)
expression='\w*Pyro-glu from E\w*';
matchStr(i)=regexp(str(i),expression,'match','once');
ArrayOfStrings=vertcat(matchStr{:});
end
После цикла:
xlswrite(filename,ArrayOfStrings,1);
И выход, как показано ниже.
1) Элементы без матча, не показаны, как пустой
2) Каждое слово матча отображается в другой ячейке.
P y r o - g l u f r o m E
P y r o - g l u f r o m E
P y r o - g l u f r o m E
P y r o - g l u f r o m E
Как получить пустые пространства оставили в матрице и имеет все совпадения фразы в одной ячейке на выходе?
Я попытался конкатенацию клеток, но это печатает все результаты в одной строке, но до сих пор каждый символ в разных клетках
Почему не просто передать массив ячеек в 'xlswrite'? Зачем вам его комбинировать? 'xlswrite (имя_файла, matchStr)'. – Suever
Не могли бы вы рассказать больше о прилагаемом коде? Я не уверен, в каком формате находятся ваши входные данные (это ** txt ** только строка?). Просьба поделиться образцом ** txt ** и кодом для цикла ** для **. –
@Suever Я непосредственно передал массив ячеек в xlswrite, и он все еще имеет тот же результат. –