algorithm - MATLAB:在矩阵中使用函数时避免循环

标签 algorithm matlab loops

我有一个矩阵 A:“M x N”。我想在矩阵中运行一个函数,

例如,回归:设每一列为 Y,其余列为 X

    for i=1:N
        Y = A(:,i);   % let Y be the "i"th columns
        X = A; X(:,i)=[];     % let X be other columns
        coef(:,i)=regress(Y,X);
    end

我想知道是否有任何matlab函数能够在循环中处理一个函数

最佳答案

这应该快得多!

[n_rows, n_cols] = size(A);
ind = true(1,n_cols);
coef2 = zeros(n_cols - 1, n_cols);

for i=1:n_cols
    y = A(:,i);   % let Y be the "i"th columns
    ind(i) = false;
    X = A(:,ind);     % let X be other columns
    coef2(:,i)= X\y;
    ind(i) = true;
end

我的代码和你的代码之间的区别:

  1. X\y 给出 y 在 X 上的回归系数。(最重要)
  2. 我不调整矩阵的大小。

关于algorithm - MATLAB:在矩阵中使用函数时避免循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33774434/

相关文章:

python - 如何应用回溯算法?

algorithm - Dijkstra 算法中边缘的松弛

java - 四元数的单个值

c++ - 为什么 for/while/do-while 在执行相同任务时被放置在 c/c++ 中

php - 如何在php中为循环创建数据库

Java - while循环将第一个输出添加到第二个输出

javascript - 如何在两个已知 y 值之间剪裁线段?

algorithm - 单调递增二维数组

c - 如何使用 MinGW 为 MATLAB 2011 配置 mex

matlab - 如何强制 Matlab/Octave cov 函数使用可选参数