Получить строковые данные в матлаб = 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/newsreader/view_thread/169552
http://stackoverflow.com/questions/10156920/using-xlsread-in-matlab-to-read-number-and-string-data
В результате окно моего матлаба выглядело как-то так:

- Log in to post comments
- 9138 reads