2

将以下 matlab 行转换为 C++ 时遇到困难:

for i=1:height 
  for j=1:width 
    if (match == 0) 
      [min_w, min_w_index] = min(w(i,j,:)); 
      mean(i,j,min_w_index) = double(data(i,j)); 
      sd(i,j,min_w_index) = sd_init; 
    end
    rank = w(i,j,:)./sd(i,j,:); 
    rank_ind = [1:1:C];
  end
end

特别是我不知道如何隐藏“min_w_index”部分。有人可以在这一点上帮助我吗?

4

1 回答 1

4

在这种情况下,min 函数最常见的解决方案是

int min_w = w[i][j][0];
int min_w_index = 0;
for (k = 1; k < maxk; k++)
   if (w[i][j][k] < min_w)
   {
       min_w = w[i][j][k];
       min_w_index = k;
   }

不要忘记 C++ 有从零开始的索引,但 Matlab 是从一开始的。我已经在您的评论中看到了问题。

于 2012-10-05T10:08:44.833 回答