如何在Matlab中简化嵌套循环?

时间:2016-12-09 06:44:18

标签: matlab nested-loops

我想简化我的代码,因为它非常耗时。在我的问题中,R是一个回合4000,所以 corr 函数应该被调用超过16000000次。我可以简化这段代码吗?

function corr = corr (X, i, j)

    covariance = (cov((X(:,i)),(X(:,j))));

    corr = (covariance(1,2))/((sqrt(var(X(:,i)))) * (sqrt(var(X(:,j)))) );


end

编辑:所以,我应该说, corr 函数由我编写,它计算两个特征之间的相关性。

这是我的 corr 功能:

@Override
public void onErrorResponse(VolleyError error) {
    Log.e(TAG, error.toString());

    // Use getActivity().runOnUiThread(...) if it's a fragment.
    // In the case of activity
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            hasInternet = false;
            snackbar = Snackbar.make(coordinator, "Slow internet connection detected", Snackbar.LENGTH_INDEFINITE)
                    .setAction("RETRY", new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            makeRequest();
                        }
                    });
            snackbar.show();
        }
    }

}

1 个答案:

答案 0 :(得分:2)

这是一个矢量化版本:

C = cov(SelectedData);
V = sqrt(diag(C));
VP2 = bsxfun(@times,V,V.');
CORR = C ./ VP2;
Red1 = sum(abs(CORR(:)));