2016-09-29 12 views
0

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

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

Undefined operator '-' for input arguments of type" '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); 
+0

Другой ключ может заключаться в том, что «raw» содержит данные всех типов, чисел и строк, возможно, это нехорошо использовать? – Spica

ответ

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^