给定一些数据 - 例如(在我的情况下) - 如下表
Name |pos_x|pos_y|pos_z
------------------------
Point1| .1| .1| .2
Point2| 0.0| 0.0| .1
Middle| .1| .2| .1
Point3| 0.0| 1| 0.0
也许在从 excel 导入该数据之后,所有值都存储在一个单元格数组中(让我们称之为celldata
)。
出于测试目的,可以使用以下行创建此单元格
celldata={'Point1' .1 .1 .2;'Point2' 0 0 .1;'Middle' .1 .2 .1;'Point3' 0 1 0}
对于此示例,单元格的大小为 4x4。
目前我正在用以下几行创建一个结构
point.name=char(celldata(:,1));
point.posxyz=cell2mat(celldata(:,2:4));
这导致point size 1x1 Class struct
. 我正在寻找一种有效的方法来生成它point size 4x1 Class struct
- 因此上面表格中的每一行都有一个元素 - 所有这些都具有相同的内部结构:名称和坐标。
我已经尝试过了cell2struct
,但它只能沿一个维度展开,而无需将一些列组合在一起——就我所尝试的而言。
此外,这不是matlab 中单元格的预分配结构的副本,因为在这种情况下,我有许多不同的列 - 甚至可能是列的动态计数。