matlab - MATLAB:如何将具有相同大小字段值的结构体数组组合成一个结构体
问题描述
我有一个结构数组,其中每个同名字段的大小相同。我想将数组上的每个字段组合成一个字段。例如:
A(1).x = [1 2 3];
A(1).y = [4 5 6];
A(2).x = [7 8 9];
A(2).y = [10 11 12];
我希望新的结构是
B.x = [1 2 3;
7 8 9];
B.y = [4 5 6;
10 11 12];
如果这使事情变得更容易,这些也可能是结构单元。
解决方案
A.x
生成以逗号分隔的值列表。您可以在函数调用中使用这个逗号分隔的列表,在这种情况下,每个值都被视为一个单独的参数。这非常有用,因为您可以将其传递给调用cat
以连接值:
B.x = cat(1, A.x);
您必须对每个字段执行相同的操作。要自动执行此操作,您可以迭代fieldnames(A)
:
for name = fieldnames(A).'
B.(name{1}) = cat(1, A.(name{1}));
end
推荐阅读
- c - 分配了一些内存后,我无法计算我分配的内存的正确大小。我不知道为什么
- java - 对页面对象应用过滤器
- java - TraceId 从 de.siegmar.logbackgelf.GelfUdpAppender 到 graylog
- python - 从文件中拆分行添加 \t 而不是空格
- java - HashMap 包含某个键,但告诉我它没有
- c - 使用scanf时获得无限运行程序
- python - 根据列表中的值过滤数据框
- sql-server - 在 Visual Studio 中使用实体框架与 SQL Server 的连接问题
- three.js - A-Frame中相机和物体之间的碰撞
- ios - 从 AppDelegate Swift 4 更新 tableView 行