matlab - 在matlab中合并结构域单元

标签 matlab merge structure field

我想合并结构字段,以防我进行部分计算,以便稍后填充整个结构字段单元格。

结果根据单元格索引放入单元格中,如下所示:

for i=3:4;
results1.index{i}=i;
results1.sqr{i}=i*i;
end
for i=1;
results2.index{i}=i;
results2.sqr{i}=i*i;
end

分别给予:

results1 = 

    index: {[]  []  [3]  [4]}
      sqr: {[]  []  [9]  [16]}

results2 = 

    index: {[1]}
      sqr: {[1]}

有没有办法合并结果结构以获得

allresults.index={[1] [] [3] [4]}
allresults.sqr={[1] [] [9] [16]}

我可以避免结果重叠,因此在值冲突的情况下不进行冲突解决或覆盖(例如没有一个单元格为空)就可以了。 请注意,在较大的数据集中,单元格不限于标量,还可能包含单元格或其他类型。

最佳答案

您可以首先编写一个小辅助函数来合并单元格:

function R = mergeCells(A,B)
R = {};
IA = ~cellfun('isempty',A);
IB = ~cellfun('isempty',B);
R(IA) = A(IA);
R(IB) = B(IB);
end

然后循环调用它来合并字段

for k = 1:numel(F), 
    f = F{k}; 
    allresults.(f) = mergeCells(results1.(f), results2.(f)); 
end

关于matlab - 在matlab中合并结构域单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30252251/

相关文章:

matlab - 将 `bsxfun` 用于非数字数据

c++ - 为 Levenberg-Marquardt 算法构建 Mex 时出错 - 表示存在的目录不存在

c++ - 将 std::complex 值的 boost::multi_array 复制到 mxArray

merge - 使用 MapReduce 获取大文件中的重复记录

python - 使用 difflib SequenceMatcher 比率在 Pandas 中合并

c - 为什么我在显示数据后得到垃圾值

c++ - C++中的初始化结构错误

python - SciPy interp1d 结果不同于 MatLab interp1

sql-server - MERGE 查询和删除记录

c - 交换 C 中的结构