我有一个句柄类:
classdef A<handle
properties
a;
end
methods
function obj = A(a)
obj.a=a;
end
end
end
我有一个
A
对象的单元格数组:arr={};
for i=1:3
arr{i}=A(i);
end
我想做的就是将该单元格数组传递给
parfor
循环,以便每个对象的值都将改变:parfor i=1:3
arr{i}.a=i*5;
end
但是,此代码完全不会更改
arr
。的确,here指出我该如何克服呢?
最佳答案
一个有趣的问题;我实际上从未遇到过这个问题。知道有关parfor
限制的所有信息总是很高兴,所以我做了一些googlin'并提出了this:
实例对象由以下位置给出
classdef Example < handle
properties
data
end
methods
function obj = Example(data)
obj.data = data;
end
function setData(obj,data)
obj.data = data;
end
function data = getData(obj)
data = obj.data;
end
end
end
并将数组简单地初始化为
% Initialise array of objects
for n = 1:num
exArray(n) = Example(zeros(1,6));
end
关于matlab - parfor和处理类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12200236/