使用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()函数时支持索引错误的主要内容,如果未能解决你的问题,请参考以下文章
MATLAB3: 矩阵分块函数mat2cell 及 cellfun 函数
MATLAB从入门到精通-控制系统动态特性的计算以及阶跃响应波德图等