使用cellstr(情绪)时输入必须是字符串MATLAB ERROR

时间:2014-11-21 17:41:35

标签: string matlab cell-array

当我尝试将其解析为cellstr功能时,我的情绪变量是单元格类,它会抛出以下错误...

  
    

cellstr(情绪)     使用cellstr时出错(第32行)     输入必须是一个字符串。

  

我正在尝试使用unique命令,但它会抛出此错误... 使用单元格/唯一时出错(第85行) 输入A必须是字符串的单元格数组。

当我打开变量时,有一个单列,其中情绪为正,负,中性,但看起来每个单元格都有一个子单元格。这可能是错误的原因吗?如果是这样我怎么纠正这个?

我采用包含一些不必要字符的单元格数组,因此我使用以下方法过滤掉相关单词:

for i= 1:length(sentdate)
s=sentiment{i};
sentiment{i}={s(15:22)};

s2=date{i};
date{i}={s2(17:26)};

提前致谢

1 个答案:

答案 0 :(得分:2)

您不需要围绕任何分配到单元格中的大括号。赋值与读出值完全对称:

s = sentiment{i};
sentiment{i} = s(15:22);

{}围绕一个值实际上会创建一个单元格数组,这就是为什么你似乎有一个子单元格。要帮助理解(){}之间的区别,请尝试以下操作:

sentiment(i) = {s(15:22)};

结果相同!通过使用()来索引情绪,我们不会取消引用单元格内容。那么要分配的值本身必须是一个单元格。