使用MATLAB cell2mat()函数时支持索引错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用MATLAB cell2mat()函数时支持索引错误相关的知识,希望对你有一定的参考价值。

我无法理解为什么我突然得到一个错误,即使我以相同的方式使用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:UsersahinDesktopFall 2018MEC 516Lab 9Data.xlsx',1,'A3:R15');
partb = xlsread('C:UsersahinDesktopFall 2018MEC 516Lab 9Data.xlsx',2,'A3:K11');

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

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

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

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

答案

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

num = xlsread(filename, sheet);

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

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

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

以上是关于使用MATLAB cell2mat()函数时支持索引错误的主要内容,如果未能解决你的问题,请参考以下文章

查看代码生成准备问题,从 Matlab 函数生成 c 代码

MATLAB3: 矩阵分块函数mat2cell 及 cellfun 函数

Julia中Matlab的cell2mat的等价性是什么?

MATLAB从入门到精通-控制系统动态特性的计算以及阶跃响应波德图等

MATLAB从入门到精通-控制系统动态特性的计算以及阶跃响应波德图等

matlab cell中的元素类型转换