Struct 从八度结构中提取给定字段名的所有行的值

Struct 从八度结构中提取给定字段名的所有行的值,struct,field,octave,Struct,Field,Octave,如何从一个倍频程struct? 我会把它放入一个单元格数组,或者一个正则向量,最好不要循环。你似乎把一些事情弄糊涂了。部分原因是您将结构与“R dataframes/python”进行了等价比较 结构最好被认为类似于python dict、R列表等。它们是一个特殊的对象,可以保存“字段”,可以通过“字段名”(或者通过键访问的值,如果您愿意的话)访问 此外,与倍频程中的任何其他对象一样,它们也是数组的有效元素。这意味着你可以有这样的东西: octave:1> struct( 'name',

如何从一个倍频程
struct


我会把它放入一个单元格数组,或者一个正则向量,最好不要循环。

你似乎把一些事情弄糊涂了。部分原因是您将结构与“R dataframes/python”进行了等价比较

结构最好被认为类似于python dict、R列表等。它们是一个特殊的对象,可以保存“字段”,可以通过“字段名”(或者通过键访问的值,如果您愿意的话)访问

此外,与倍频程中的任何其他对象一样,它们也是数组的有效元素。这意味着你可以有这样的东西:

octave:1> struct( 'name', { 'Tom', 'Jim'; 'Ann', 'Sue' }, 'age', { 20, 21; 22, 23 } )
S =
  2x2 struct array containing the fields:
    name
    age
通常,当处理这样一个结构数组时,访问数组中多个元素上的字段会产生一个错误。例如

这可以传递给(即“扩展为”)任何需要逗号分隔列表作为参数的函数。例如

octave:7> fprintf( 'The girls names are %s, and %s.\n', S(2,:).name )
The girls names are Ann, and Sue.
如果需要,还可以将该列表直接传递到“单元构造函数”中,以创建单元。(不过,如果你想让它有一个特定的形状,你必须在后记中重塑它)。例如

还有
struct2cell
,但它做了一些不同的事情。尝试查看它的功能(例如,
C=struct2cell


最后,为了避免混淆,考虑到在处理结构数组时,“列”指的是“数组”中的列,我将避免使用该术语指的是“字段名”。

所指的问题(至少有一个有效的答案):
myarr=[struc.field]
@sancho.srestemonicacellio yes这将生成一个逗号分隔的列表,并将其捕获到括号中,从而有效地创建一个水平数组。这实际上与我在这里更详细地展示的内容相同。但正如我在另一篇文章中所说的,您可能并不是在寻找结构数组。您可能正在寻找数组结构(这将是最接近数据帧的结构)。有关更多详细信息,请参阅我的其他答案。太好了,我将对此进行检查。
octave:7> fprintf( 'The girls names are %s, and %s.\n', S(2,:).name )
The girls names are Ann, and Sue.
octave:9> reshape( { S.age }, size(S) )
ans =
{
  [1,1] =  20
  [2,1] =  22
  [1,2] =  21
  [2,2] =  23
}