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

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

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

Неопределенный оператор ‘ — ‘ для входных аргументов типа»
‘cell’.

И я где-то читал, что это может быть связано с тем, что я получаю {} выход вместо [], и, возможно, мне нужно использовать 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 ответ

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

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