【问题标题】:Brace indexing error when using MATLAB cell2mat() function使用 MATLAB cell2mat() 函数时出现大括号索引错误
【发布时间】:2019-04-11 12:05:06
【问题描述】:

我不明白为什么我突然收到错误,即使我以前的代码以相同的方式使用了 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(parta(:,1),parta(:,2));

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

【问题讨论】:

  • 我认为parta 不是元胞数组。你检查过它的价值吗?

标签: matlab plot indexing


【解决方案1】:

如果您使用只有 1 个返回参数的 xlsread

num = xlsread(filename, sheet);,

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 2018-01-18
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多