Обмен технологиями

Практические примеры извлечения и обработки данных Excel в Matlab

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

достигнутые цели

Когда объем данных Excel огромен, ручная обработка данных станет весьма неблагодарным занятием, чреватым ошибками и депрессиями.

Использование Matlab для обработки становится простым и эффективным способом.

Например, взяв в качестве примера таблицу мультиплексирования выводов серии GD32F7xx, в таблице Excel 169x19:

Как быстро получить все соответствующие выводы и значения AF UART7_RX и вывести информацию в виде массива.

Введение в связанные функции: xlsread

xlsread Это математическое программное обеспечениематлабЧитать вЭксель Функция данных в файле. То есть из папки, где находится текущая программа, согласно диапазону, заданному параметрами в функции, считывается файл, начиная с ячейки, и возвращаются данные.

1num = xlsread('имя_файла')

Чтение из указанной папки, напримерnum=xlsread('data.xls'),То есть из папки, где находится текущая программа, изА1Клетка начинает читать, читатьданные.xlsфайл и вернуть данные вчисло

2num = xlsread('имя_файла','лист')
Выберителист, например'лист1'

3num = xlsread('имя_файла', 'диапазон')
Диапазон ячеек, в котором он расположен, напримердиапазон = 'A1:A8'

4num = xlsread('имя_файла', 'лист', 'диапазон')
лист
и диапазон ячеек ограничены одновременно.

5[число, текст]= xlsread('имя_файла', …)
Сохраните возвращенные данные отдельно от текста.

6[число, текст, необработанный] = xlsread('имя_файла', …)
При сохранении их отдельно естьчислоитекстСохранитьсырой, образуя одну переменную.

в,число— числовая переменная и матрица,текстпредставляет собой символьную переменную и массив ячеек,сыройСодержит как числовые переменные, так и символьные переменные.сыройпредставляет собой массив ячеек.

Введение в связанные функции: связанные с strcmp

1.strcmp(s1, s2): используется для сравнения строк s1 и s2. Если они равны, вернуть результат 1, в противном случае вернуть 0;

Например:

TF=strcmp(s1,s2);

s1 и s2 — это строки, например: s1='hello', s2='matlab'.

Если s1 и s2 согласованы, возвращаемое значение TF=1, в противном случае TF=0.

TF=strcmp(s,c);

s — строка, c — массив ячеек, а все элементы c — строки, например: s='hello', c={'hello','matlab';'HELLO','matlab'}.

Возвращаемое значение TF — это массив той же длины, что и c, а элементы TF — 1 или 0.

Сравните каждый элемент c с s. Если они согласованы, элемент в соответствующей позиции TF равен 1, в противном случае — 0.

TF=strcmp(c1,c2);

И c1, и c2 являются массивами ячеек и имеют одинаковую длину. Все их элементы представляют собой строки, например c1={'hello','matlab';'HELLO','matlab'};c2={'hello' , 'matlab';'привет','MATLAB'};

Возвращаемое значение TF представляет собой логический массив той же длины, что и c1 или c2, а элементы TF равны 1 или 0.

Сравните элементы в соответствующих позициях c1 и c2. Если они согласованы, элемент в соответствующей позиции TF равен 1, в противном случае — 0.

2.strncmp(s1, s2, n): используется для сравнения первых n символов строк s1 и s2. Если они равны, результат равен 1, в противном случае — 0;

3.strcmpi(s1, s2): Сравните строки s1 и s2, чтобы убедиться, что они равны, игнорируя регистр букв. Если они равны, верните результат 1, в противном случае верните 0;

4.strncmpi(s1, s2, n): исходя из игнорирования регистра букв, сравните первые n символов строк s1 и s2, чтобы убедиться, что они равны. Если они равны, верните результат 1, в противном случае верните результат. 0.

Практические примеры

1. Определите выходной массив, извлеките содержимое файла Excel и создайте массив txt:

  1. >> OUTPUT=cell(10,2);
  2. >> [~,txt] = xlsread('D:aaabbbccc.xlsx');

На этом этапе вы можете увидеть переменные:

2. Отредактируйте функцию преобразования:

Пройдите и сравните все содержимое, чтобы найти все соответствующие контакты и значения AF UART7_RX, и выведите информацию в форме массива.

  1. function OUTPUT=excel_read(specified_txt)
  2. [~,txt] = xlsread('D:aaabbbccc.xlsx');
  3. m = 1;
  4. OUTPUT=cell(10,2);
  5. for i=1:169
  6.     for j=1:19
  7.         if strcmp(txt(i,j),specified_txt)
  8.             OUTPUT(m,1)=txt(i,1);
  9.             OUTPUT(m,2)=txt(1,j);
  10.             m=m+1;
  11.         end
  12.     end
  13. end
  14. end

3. Вызовите функцию:

>> OUTPUT=excel_read('UART7_RX')

Можно получить следующие результаты:

То есть: все соответствующие выводы и значения AF UART7_RX, и выводить информацию в виде массива.