0

我正在尝试使用 Matlab 从 Excel 表中获取一些变量和数字。

下面名为“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);
4

1 回答 1

0

你是对的,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 文件创建一个表格。

于 2016-09-29T12:32:35.767 回答