Получить строковые данные в матлаб = get string data from excel matlab - одновременное получение численных и строковых данных
Primary tabs
Forums:
О чём это мы
пусть у нас есть файл (таблица эксель) = D:/Dannie.xlsx
содержимое - что-то вроде того =
то есть - есть и строковые и численные данные,
Давайте разберёмся с тем - как их забрать их эксель-файла - дабы иметь возможность эти данные обрабатывать.
Решение
будем использовать функцию xlsread =
Считаем все данные ,раскидав их по трём типам -
- числа
- текст
- и обобщённый формат (raw)
это делается так =
[num,txt,raw] = xlsread('D:/Dannie.xlsx');
а теперь давайте ка заполним только текстовый массив и только из столбца B (это столбец под номером 2 на картинке выше) =
[~,txt,~] = xlsread('D:/Dannie.xlsx', B2:B10);
выполним команду выше кликните пару раз на переменную (не знаю как это корректно назвать в матлабе - я не профессионал - ну что-то вроде переменной-массива) - txt из блока Workspace - вот что получил я =
да, кстати вызов этой функции (xlsread ) возможен в следующих форматах:
num = xlsread('filename') num = xlsread('filename', -1) num = xlsread('filename', sheet) num = xlsread('filename', 'range') num = xlsread('filename', sheet, 'range') num = xlsread('filename', sheet, 'range', 'basic') num = xlsread('filename', ..., functionhandle) [num, txt] = xlsread('filename', ...) [num, txt, raw] = xlsread('filename', ...) [num, txt, raw, X] = xlsread('filename', ..., functionhandle) xlsread filename sheet range basic
да - я могу по аналогии на очередном шаге выполнения скрипта в матлабе считать номера и первого столбца по девятый=
[num,~,~] = xlsread('D:/Dannie.xlsx', 'A2:A10');
после этого num =
1 2 3 4 5 6 7 8 9
(см. исходную таблицу)
а теперь - как сохранять эти данные в разные переменные - ведь нам придётся читать из разных столбцов - это просто =
вот я двумя командами сохраняю данные из стандартных переменных txt и num по другими именами (чтобы потом иметь возможность продолжить читать из других столбцов и запоминать по аналогии) =
myarray=num; mytxtarray=txt;
да , кстати - если в консоли не ставить точку с запятой то массив полученные значения пропишутся прямо в этой же консоли:
>> mytxtarray=txt mytxtarray = 'Коминтерновский' 'Советский' 'Левобережный' 'Центральный' 'Железнодорожный' 'Ленинский' 'Коминтерновский' 'Центральный' 'Железнодорожный'
Ну вот собственно и всё)))
Привожу здесь историю моих команд (может она окажется полезной
- там были ошибки и даже одна попытка создания массива ячеек (cell))))) =
>> [num,txt,raw] = xlsread('D:/Dannie.xlsx'); >> [txt,txt,txt] = xlsread('D:/Dannie.xlsx'); >> [~,txt,~] = xlsread('D:/Dannie.xlsx', B2:B10); Undefined function or variable 'B2'. >> [~,txt,~] = xlsread('D:/Dannie.xlsx', 22:210); Error using xlsread (line 139) Sheet argument must be a string or an integer. >> [~,txt,~] = xlsread('D:/Dannie.xlsx', 'B2:B10'); >> [~,txt,~] = xlsread('D:/Dannie.xlsx', 'B2:B10'); >> a=txt; >> [num,~,~] = xlsread('D:/Dannie.xlsx', 'A2:A10'); >> C = cell(dim) Undefined function or variable 'dim'. >> C = cell(12) C = [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] >> a=txt; >> [num,~,~] = xlsread('D:/Dannie.xlsx', 'A2:A10'); >> Untitled Undefined function or variable 'B2'. Error in Untitled (line 1) xlsread('D:/Dannie.xlsx', B2:B10); >> Untitled Undefined function or variable 'B2'. Error in Untitled (line 1) xlsread('D:/Dannie.xlsx', B2:B10); >> Untitled Undefined function or variable 'B2'. Error in Untitled (line 1) xlsread('D:/Dannie.xlsx', B2:B10); >> Untitled Undefined function or variable 'B2'. Error in Untitled (line 1) xlsread('D:/Dannie.xlsx', B2:B10); >> Untitled Undefined function or variable 'B2'. Error in Untitled (line 1) xlsread('D:/Dannie.xlsx', B2:B10); >> Untitled Undefined function or variable 'B2'. Error in Untitled (line 1) xlsread('D:/Dannie.xlsx', B2:B10); >> a=txt; >> [~,txt,~] = xlsread('D:/Dannie.xlsx', 'B2:B10'); >> a=txt; >> a=txt; >> h=txt; >> a=txt; >> a=num a = 1 2 3 4 5 6 7 8 9 >> a=txt a = 'Коминтерновский' 'Советский' 'Левобережный' 'Центральный' 'Железнодорожный' 'Ленинский' 'Коминтерновский' 'Центральный' 'Железнодорожный' >> a=num; >> a=txt; >> myarray=num; >> mytxtarray=txt; >>
полезные ссылки:
http://www.mathworks.com/matlabcentral/n...
http://stackoverflow.com/questions/10156...
В результате окно моего матлаба выглядело как-то так:
- Log in to post comments
- 8802 reads