在Matlab中使用parfor的结构数组



我正在使用Matlab来处理我的项目,我想使用"parfor";作为我代码的一部分,它在每次迭代中返回一个结构数组,但当我运行代码时,我遇到了一些错误。我只是想用最简单的方法举例说明我的问题。如果有任何帮助,我们将不胜感激!以下是示例:

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

需要注意的一点是,当我只返回一个结构时,它运行良好,但当我有多个结构时(例如添加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

相关内容

  • 没有找到相关文章

最新更新