gpt4 book ai didi

matlab - 在 MATLAB 中串联两个或多个结构类型变量

转载 作者:太空宇宙 更新时间:2023-11-03 19:45:49 26 4
gpt4 key购买 nike

假设所有变量的类型都是 struct 并且具有相同的 fieldsconcatenatable 大小(维度)。例如:

a.x = 1; a.y = 2;
b.x = 10; b.y = 20;

使用普通连接:

c = [a; b];

返回

c(1).x = 1; c(1).y = 2;
c(2).x = 10; c(2).y = 20;

我想要的是:

c.x(1) = 1; c.y(1) = 2;
c.x(2) = 10; c.y(2) = 20;

可以通过以下方式完成:

c.x = [a.x; b.x];
c.y = [a.y; b.y;];

但是,如果变量有很多字段,

a.x1 = 1;
a.x2 = 2;
% Lots of fields here
a.x100 = 100;

写这样的代码是浪费时间。有什么好的方法吗?

最佳答案

这个函数做你想做的,但没有错误检查:

function C = cat_struct(A, B)
C = struct();
for f = fieldnames(A)'
C.(f{1}) = [A.(f{1}); B.(f{1})];
end

您可以在上面的代码中像这样使用它:

c = cat_struct(a, b);

关于matlab - 在 MATLAB 中串联两个或多个结构类型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com