有没有通常的方法来模仿Matlab中的parfor返回?

时间:2016-02-21 03:36:41

标签: matlab

parfor-loop的主体不能包含return语句。

我觉得有时可能会很方便,例如:

if matlabpool('size') == 0 % checking to see if my pool is already open
    matlabpool(2)
end

parameters = random_parameters(1000)
parfor i=1:1000
    result = do_stuff(parameters(i))
    if result < threshold
        return parameters
    end
end

有没有通常的方法来模仿parfor的回报?

我在Windows 7 SP1 x64 Ultimate上使用Matlab R2014a。

1 个答案:

答案 0 :(得分:1)

在这种情况下我使用try-catch块。一些例子:

private func cellForDropbox(cell:GridCell,indexPath:IndexPath) -> GridCell {

    let filename = self.filenames[(indexPath as NSIndexPath).row]

    cell.imageView.backgroundColor = UIColor.lightGray

    DropboxClientsManager.authorizedClient?.files.getTemporaryLink(path: filename).response(completionHandler: { (response, error) in

            if let url = response {
            cell.imageView.sd_setImage(with: URL(string: url.link), placeholderImage: UIImage(named: "placeholder.png"))


            } else {
                print("Error downloading file from Dropbox: \(error!)")
            }
        })

    return cell
}

<强> P.S。请不要使用i和j作为迭代变量。这是MatLab的不良做法