arrays - 在一行中从多个数组创建结构

标签 arrays matlab struct vectorization

假设我有两个相同大小的数组:

X = [1 2 3 4 ...]
Y = [1 2 3 4 ...]

但我想要的是一个结构体:

S(1) =          S(2) = 
    X: 1            X: 2
    Y: 1            Y: 2

解决这个问题的明显方法是:

for ii = 1:length(X)
    S(ii).X = X(ii);
    S(ii).Y = Y(ii);
end

您甚至可以使用 arrayfun 将其压缩为一行,但我正在寻找一种更简单的单行代码。我希望得到类似这样的东西:

X = [S.X];

它解决了同样的问题,但方向相反。

这可能吗?

最佳答案

使用结构和单元格

S = struct('X', num2cell(X), 'Y', num2cell(Y) );

关于arrays - 在一行中从多个数组创建结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16768255/

相关文章:

matlab - 如果 FFT 有很多 0,则寻找卷积核?

c - 跳过 MEX 编译中的代码部分

matlab - 2017a MATLAB中的并行函数是什么?

c++ - 为什么 const 结构数组在按名称引用 const 结构时不放在 .rodata 中?

javascript - 从数组中选择随机加权对象

java - 简化和压缩数组上的多个编辑操作。 java

C结构,指针

c - malloc 之后访问结构数组的内容

javascript - Jquery array.push() 不工作

c++ - 从文件中读取未知长度的 int 数组