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