Matlab 中带有 parfor 的结构数组

Array of structures with parfor in Matlab

我正在使用 Matlab 来处理我的项目,我想使用“parfor”作为我的代码的一部分,return在每次迭代中都是一个结构数组,但是当我 运行 我的代码有一些错误。我只是试图以最简单的方式举例说明我的问题。将不胜感激任何帮助!这是示例:

clear;
clc;
% An arbitrary number 
constant_Number=3;
tic
parfor i=1:2
    k=[constant_Number,i];
    r(i)=test(k);
end
toc

测试函数如下:

function [a]=test(k)
   a.first=k(1) * k(2);
   a.second=k(1)+k(2);
   b.first=k(1)/k(2);
   b.second=k(1);
   a=[a;b];
end

需要注意的是,当我只有 return 一个结构时,它工作正常,但是当我有多个结构时(例如添加 b),我收到以下错误:“无法执行赋值,因为左侧的索引与右侧的大小不兼容。"

谢谢, 阿里

找到解决方案,只需要定义一个单元格数组,然后最后合并它们!关注即可回复:

clear;
clc;
% An arbitrary number 
constant_Number=3;
% Define an arbitrary array of structure 
arb_arr=[];
% Define an arbitrary cell array
r={};
tic
parfor i=1:2
    k=[constant_Number,i];
    r{i}=test(k);
end



for i=1:2
   arb_arr=[arb_arr;r{i}];
end


toc