2013-10-24 56 views
2

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

+0

你想要什么?它的一个142x2单元,第二列应该做什么?关掉?将两个列连接到一个? – Daniel

+0

对不起,如果我不清楚丹尼尔。现在数据类型是1x1单元{P}。当我查看{P}的数据时,(1,1)位置简单地说“<142x1 cell>”,如果我双击它,它会打开到我实际需要的142x1数据。我认为我的术语可能有点偏离,但这样做更有意义吗? – user2208604

+1

相关问题:[使用{}和()(花括号与括号括起来)访问单元格元素之间的区别](http://stackoverflow.com/q/9055015/1336150) –

回答

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)

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

相关问题