matlab:结构数组的字段实际上是命名单元数组吗?

matlab:结构数组的字段实际上是命名单元数组吗?,matlab,cell,Matlab,Cell,我在谷歌上搜索了有关cell数组和array之间的区别的主题,并设想cell数组实际上存储指向元素内容的指针 运算符{}类似于C中的&,对吗 当{}应用于变量{var_a,var_b}时,我们得到一个1*2“单元格指针”数组,指向var_a和var_b?“单元格指针”有名称吗 结构数组采用类似的内存安排吗 以matlab文档中的示例为例: patient.name = 'John Doe'; patient.billing = 127.00; patient.test = [79, 75, 73

我在谷歌上搜索了有关cell数组和array之间的区别的主题,并设想cell数组实际上存储指向元素内容的指针

运算符
{}
类似于C中的
&
,对吗

{}
应用于变量
{var_a,var_b}
时,我们得到一个1*2“单元格指针”数组,指向
var_a
var_b
?“单元格指针”有名称吗

结构数组采用类似的内存安排吗

以matlab文档中的示例为例:

patient.name = 'John Doe';
patient.billing = 127.00;
patient.test = [79, 75, 73; 180, 178, 177.5; 172, 170, 169];

patient(2).name = 'Ann Lane';
patient(2).billing = 28.50;
patient(2).test = [68, 70, 68; 118, 118, 119; 172, 170, 169];
那么变量patient就像一个2*3的单元格数组,除了字段名

patientcell{2,3}=...
我想知道下面的概念:

结构中的点运算符遵循其内容:

patient(1).test;
=> patientcell{1,3}

对吗?

可以合理地假设单元阵列是作为 指针的连续数组,每个指针指向 牢房

该结构只是一个指针数组


为了更深入地了解,我建议深入研究MEX API以了解幕后情况-即使数字数组实际上也只存储指向其数据的指针(首先是写时复制机制的工作原理)。我认为要实现写时复制,数字数组只存储指向起始元素的指针,这与单元阵列不同。文章中的链接是一个api列表,没有详细的实现。很遗憾,mathworks隐藏了这些细节。感谢您确认我的犹豫,结构包含两个指针。也许它本身就是一个模棱两可的关于二维单元阵列和结构阵列的类比。毕竟,我们不知道下面的实现,Mathworks也不认为这两者是语义等价的。