arrays - 字符串元胞数组到 matlab 结构

标签 arrays matlab struct cell

我需要创建这样的 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/

相关文章:

c - 为什么我的递归函数的返回值出错

c++ - “fArray”未在此范围内声明

php - 用php中的点值替换单词

matlab - 如何与 Matlab 协同工作?

c - 为什么编译器会发出 : warning: assignment makes integer from pointer without a cast

java - 在java中使用它们创建数组时如何准备不合适的用户输入

matlab - 从Matlab中一个类的所有实例中检索属性,将值写入文件

linux - 显着性模型 - BMS(设置错误)

c - 不确定为什么在设置结构标签时使用 typedef

json - 如何在Go中将具有嵌入式struct字段的结构编码(marshal)为平面JSON对象?