Matlab R2015b vs R2015a - parfor循环表 - 透明度违规

时间:2016-03-24 14:18:59

标签: matlab version transparency parfor

我在parfor循环中创建表时遇到基本的透明度违规错误。最令人困惑的是,完全相同的示例代码在R2015a中起作用,但在较新版本R2015b中不再起作用。

为了模拟问题,我在两个Matlab版本上运行以下代码:

A = [1,2,3,4];

parfor i=1:5
  table(A)
end

这样做会返回以下错误:

  

使用表时出错(第247行)透明度违规错误   看到   有关透明度的并行计算工具箱文档

我现在很想知道是否有人遇到过同样的问题,或者是否有人可以为此提供解释。使用以前的版本我的初始代码和这个简单的例子就像一个魅力。

1 个答案:

答案 0 :(得分:3)

不幸的是,这是因为R2015b中的工作区透明度检查变得更加严格,并且不允许使用inputname,这是table构造函数正在使用的内容。我认为解决这个问题的唯一方法是将table构造函数调用移动到从parfor循环中调用的函数中。即。

parfor idx = 1:1
  t{idx} = iBuildTable(idx);
end

function t = iBuildTable(varargin)
  t = table(varargin{:});
end