查看单个帖子
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,008
声望力: 66
poster 正向着好的方向发展
帖子 如何附加到最终尺寸?

我从单独的文件加载多个结构,并希望将它们收集在一个数组结构中。由于该结构具有许多字段,因此我正在遍历其fieldnames ,如下所示:

for fnc = fieldnames(result)' fn = fnc{:} results.(fn) = [results.(fn) result.(fn)]; end 这对于标量字段很好用,但是某些字段是矢量或矩阵,因此应分别存储为矩阵或三阶张量。我可以使用一些if length和if ndims分别处理这些情况,但是
有没有更通用的方法来使用下一个更高的维度进行附加?

回答:

要沿最后一个维度附加,可以使用命令CATNDIMS

%# 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自己陷入难以发现的错误中。



更多&回答...
poster 当前离线   回复时引用此帖