我正在尝试使用Matlab从Excel表中获取一些变量和数字。
下面名为“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);
答案 0 :(得分: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文件创建一个表,包含文本和数字。