我需要创建这样的 matlab 结构 ds=struct('name',{{'my_name_is'},{'matlab_thining_hair'}})
,它存储为带有字段的 1x2 结构数组: 姓名。调用 ds.name 生成输出:
ds.name
ans = 'my_name_is'
ans = 'matlab_thining_hair'
请注意输出中的单引号。他们很重要。也就是说,我需要使用以下变量创建上述结构: X = [1x46 char] [1x47 char] 即 1x2 单元格,我认为它实际上是一个字符串单元格数组。除其他外,我尝试了以下方法:
Y = cell2struct(X, 'name', 1)'
这会产生一个带有字段名称的 1x2 结构数组,但是调用 Y 会生成输出:
Y.name
ans = my_name_is
ans = matlab_thining_hair
请注意,输出中缺少单引号,尽管 Y 和 ds 都是具有字段名称的 1x2 结构数组,但字段值的格式不同,并且结构的字节大小也不同。如何将字段值格式化为字符数组?
最佳答案
在您的第一种情况下,您创建了一个结构,其中包含两个值为元胞数组的字段。元胞数组显示时带有引号。
在您的第二种情况下,您的结构字段具有您想要的 char 数组。字符数组显示时不带引号。
您可以通过在命令提示符中输入 {'abc'} 然后输入 'abc' 来验证这一点。
在第一种情况下,您可以通过在单元格括号外传递字符串来创建非单元格数组字段值。
ds=struct('name',{'my_name_is','matlab_thining_hair'})
关于arrays - 字符串元胞数组到 matlab 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14249564/