Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我从单独的文件加载多个结构,并希望将它们收集在一个数组结构中。由于该结构具有许多字段,因此我正在遍历其fieldnames ,如下所示:
for fnc = fieldnames(result)' fn = fnc{:} results.(fn) = [results.(fn) result.(fn)]; end 这对于标量字段很好用,但是某些字段是矢量或矩阵,因此应分别存储为矩阵或三阶张量。我可以使用一些if length和if ndims分别处理这些情况,但是 有没有更通用的方法来使用下一个更高的维度进行附加?回答: 要沿最后一个维度附加,可以使用命令CAT和NDIMS : %# find the number of dimensions nd = ndims(results.(fn)); %# catenate along the last dimension results.(fn) = cat(nd,results.(fn), newResult.(fn)); 请注意,如果存在大量迭代,则通过分类构建数组可能会非常慢,尽管在您的情况下,预分配会有所涉及,因此,仅在确实有必要时才这样做。另外,使用变量results以及result都results自己陷入难以发现的错误中。 更多&回答... |
![]() |
![]() |