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

问题描述 投票:0回答:1

我无法理解为什么我突然得到一个错误,即使我以相同的方式使用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));

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

matlab plot indexing
1个回答
2
投票

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

num = xlsread(filename, sheet);

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.