Я использую xlsread в MATLAB для чтения в листах из файла excel. Моя цель состоит в том, чтобы каждый столбец Excel был прочитан как числовой массив. В одном из столбцов есть сочетание чисел и чисел + char. Например, значения могут быть 200, 300А, 450, 500A, 200A, 100 вот что я до сих пор:Преобразование неоднородной матрицы ячеек в числовой массив
[num, txt, raw] = xlsread(fileIn, sheets{ii}); % Reading in each sheet from a for loop
myCol = raw(:, 4) % I want all rows of column 4
for kk=1:numel(myCol)
if iscellstr(myCol(kk))
myCol(kk) = (cellfun(@(x)strrep(x, 'A', ''), myCol(kk), 'UniformOutput', false));
end
end
myCol = cell2mat(myCol);
Это может сдирать полукокс из числа, но тогда я оставил с
Mycol =
[200]
'300'
[450]
'500'
'200'
[100]
который ошибки вне на cell2mat с:
cell2mat (Mycol)
??? Ошибка при использовании ==> cell2mat at 46
Все содержимое массива входных ячеек должно быть одного типа данных.
Я чувствую, что я, вероятно, смешиваю() и {} где-то. Может ли кто-нибудь помочь мне с этим?
Что такое переменная 'alt'? Должно ли это быть 'myCol'? – gnovice
К сожалению. Да, должно быть. Я отредактировал его. – Doomchinchilla