【问题标题】:How do I subtract two arrays of cells in Matlab如何在Matlab中减去两个单元格数组
【发布时间】:2016-09-29 10:32:55
【问题描述】:

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

下面名为“diffZ_trial1-4”的变量应通过两列之间的差异(“start”和“finish”之间)来计算。但是我得到了错误:

未定义运算符 '-' 用于类型的输入参数" '细胞'。

我在某处读到它可能与我得到 {} 输出而不是 [] 的事实有关,也许我需要使用 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);

【问题讨论】:

  • 另一个线索可能是“原始”包含所有类型、数字和字符串的数据,可能不好用?

标签: excel matlab difference cell-array xlsread


【解决方案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 文件创建一个表格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多