我不确定术语,但我已将文本文件中的数据读取到 1x1 单元格数组P中。检查时P,它会在 (1,1) 位置列出“<142x2 单元格>”。从那里我可以双击它,它会打开我真正想要的 142x2 单元格。问题是,我不知道如何通过代码操作这些数据以将 1x1 单元阵列转换为 142x2 单元阵列。此外,我在任何地方都找不到大括号表示的内容。
5972 次
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
简短回答:您可以将第一个单元格的内容分配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解释大括号的使用。
于 2013-10-24T14:43:49.453 回答