3

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

4

2 回答 2

7

我不知道如何通过代码操作这些数据以将 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 关于特殊字符的文档?它是这样说的:

花括号用于元胞数组赋值语句。例如A(2,1) = {[1 2 3; 4 5 6]}, 或A{2,2} = ('str')。有关help paren的更多信息,请参阅{ }

我还敦促您阅读以下(非常)相关的问题:使用 {} 和 () 访问单元格元素的区别(大括号与括号)

于 2013-10-24T14:21:54.137 回答
2

简短回答:您可以将第一个单元格的内容分配PP.

例子:

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解释大括号的使用。

于 2013-10-24T14:43:49.453 回答