Как вычесть два массива клеток в Matlab

Я пытаюсь получить некоторые переменные и числа из таблицы Excel, используя Matlab.

Переменные, названные ниже "diffZ_trial1-4", должны рассчитываться по разнице между двумя столбцами (между "началом" и "окончанием"). Однако я получаю ошибку:

Неопределенный оператор "-" для входных аргументов типа "ячейка".

И я где-то читал, что это может быть связано с тем, что я получаю вывод {} вместо [], и, возможно, мне нужно использовать cell2mat или каким-то образом преобразовать вывод. Но я, должно быть, сделал это неправильно, потому что это не сработало!

Вопрос: Как я могу рассчитать разницу между двумя столбцами ниже?

clear all, close all

[num,txt,raw] = xlsread('test.xlsx');



start = find(strcmp(raw,'HNO'));

finish = find(strcmp(raw,'End Trial: '));

%%% TIMELINE EACH TRIAL

time_trial1 = raw(start(1):finish(1),8);
time_trial2 = raw(start(2):finish(2),8);
time_trial3 = raw(start(3):finish(3),8);
time_trial4 = raw(start(4):finish(4),8);

%%%MOVEMENT EACH TRIAL

diffZ_trial1 = raw(start(1):finish(1),17)-raw(start(1):finish(1),11);
diffZ_trial2 = raw(start(2):finish(2),17)-raw(start(2):finish(2),11);
diffZ_trial3 = raw(start(3):finish(3),17)-raw(start(3):finish(3),11);
diffZ_trial4 = raw(start(4):finish(4),17)-raw(start(4):finish(4),11);

1 ответ

Решение

Вы правы, сырье содержит данные всех типов, включая текст ( http://uk.mathworks.com/help/matlab/ref/xlsread.html). Вы должны использовать num, который является числовой матрицей.

В качестве альтернативы, если у вас есть обновленная версия Matlab, вы можете попробовать читаемый файл ( https://uk.mathworks.com/help/matlab/ref/readtable.html), который я считаю более гибким. Он создает таблицу из файла Excel, содержащую как текст, так и цифры.

Другие вопросы по тегам