访问1x1 matlab单元格的内容

时间:2013-10-24 14:13:48

标签: matlab cell-array

我不确定术语,但我已将文本文件中的数据读入1x1单元格数组P。检查P时,会列出“< 142x2 cell>”在(1,1)位置。从那里我可以双击它,它打开到我真正想要的142x2单元格。问题是,我不知道如何通过代码操作这些数据以从1x1单元阵列转换为142x2单元阵列。 此外,我无法找到大括号表示的任何地方。

2 个答案:

答案 0 :(得分:6)

  

我不知道如何通过代码操作此数据以将1x1单元阵列转换为142x2单元阵列

单元阵列P实际上是1x1单元阵列,后者又包含另一个单元阵列142x2。使用textscan时,此类型的输出非常常见。要访问内部单元格数组,您可以简单地使用花括号({}),如下所示:

Q = P{1}; // or P{:} if you're certain that P holds only one cell

结果Q应该保存您的142x2单元阵列。我通常通过P来“扁平化”P = P{:},而不使用中间变量。

  

另外,我无法找到花括号表示的任何地方。

您是否阅读过MATLAB's documentation about special characters?这就是它所说的:

  

在单元格数组赋值语句中使用大括号。例如,A(2,1) = {[1 2 3; 4 5 6]}A{2,2} = ('str')。有关help paren

的详细信息,请参阅{ }

我还恳请您阅读以下(非常)相关问题:Difference between accessing cell elements using {} and () (curly braces vs. parentheses)

答案 1 :(得分:2)

简答:您可以将P中第一个单元格的内容分配给P

示例:

P = {cell(142,2)}; %Create a 142x2 cell inside a cell
P = P{1};          %Solution: Now P is a 142x2 cell

如果您尝试help cell,它会引导您help paren解释大括号的使用。