使用MATLAB cell2mat()函数时的括号索引错误

时间:2018-11-08 00:36:30

标签: matlab plot indexing

即使我以前的代码使用cell2mat的方式相同,我也无法理解为什么突然出现错误。错误显示为

Brace indexing is not supported for variables of this type.
Error in cell2mat
cellclass = class(c{1});

对应的代码是

clear all;
close all;
clc;

parta = xlsread('C:\Users\Zahin\Desktop\Fall 2018\MEC 516\Lab 9\Data.xlsx',1,'A3:R15');
partb = xlsread('C:\Users\Zahin\Desktop\Fall 2018\MEC 516\Lab 9\Data.xlsx',2,'A3:K11');

a_rg = cell2mat(parta(:,1));

我的目标是将这些单元格转换为列向量,以便可以使用plot函数。当我做类似的事情时:

plot(parta(:,1),parta(:,2));

MATLAB将创建一个折线图,该点以数组元素索引的顺序(即[x1,y1]到[x2,y2]的顺序)连接每个点,即使(x3,y3)更接近于(x1,y1) )线性拟合)。我不明白为什么会发生这种情况,但是我认为这与无法转换表数组有关。

1 个答案:

答案 0 :(得分:2)

如果您将 xlsread 与仅1个返回参数一起使用,则为:

num = xlsread(filename, sheet);

返回值将是数字矩阵,因此无法使用cell2mat函数转换数字矩阵。您以前可能使用的是:

[num, txt, raw] = xlsread(filename, sheet);

返回第二个和第三个返回值的单元格数组,因为txt将读取仅包含文本数据的所有单元格,并将其放在单元格矩阵中,而raw将再次读取所有数据将其放在单元格矩阵中,混合数字和字符数组。